请小心使用“set”而不是其他内置方法,因为它在更改值后不会触发事件,正如此处的评论所指出的:How to use fill_in with find in Capybara (if possible)
例如
find(:css, "input[id$='donation_pledge_hundreds']").set("10")
我正在使用 ruby、capybara 和 site-prism。据我了解,site-prism 的目的是通过获取 capybara 节点元素,然后调用它们的方法来使用,例如点击
我需要设置文本框的值,因此尝试在相关的 capybara 节点元素上调用 set 。不幸的是,这并没有触发相关的 javascript。
我应该怎样尝试解决这个问题?我应该只使用 capybara fill_in
方法吗?
最佳答案
我会选择fill_in
,因为它是最接近手动测试的方法,而手动测试正是我们在编写功能测试时的目标。我发现,当您使用 set
时,您将无法发现诸如字段被其他元素覆盖之类的问题,因此您只能发现该字段不可点击通过人工检查。
关于javascript - Capybara Set 更改值后不触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754408/