Capybara Set 改值后不触发事件

Capybara Set doesn't trigger events after changing the value

小心使用 'set' 而不是其他内置方法,因为它不会在更改值后触发事件,正如此处评论中指出的:How to use fill_in with find in Capybara (if possible)

例如

find(:css, "input[id$='donation_pledge_hundreds']").set("10")

我正在使用 ruby、水豚和 site-prism。据我了解,站点棱镜旨在通过获取水豚节点元素,然后调用它们的方法来使用,例如点击

我需要设置文本框的值,因此尝试在相关的水豚节点元素上调用 set。不幸的是,这并没有触发相关的 javascript。

我应该如何解决这个问题?我应该只使用水豚 fill_in 方法吗?

我会选择 fill_in,因为它是我们在编写功能测试时所追求的最接近手动测试的方法。我发现当你使用set时,你将无法发现字段被其他元素覆盖等问题,因此你只能通过手动检查才能发现该字段不可点击.

如果您要实现浏览器自动化,则需要考虑您的用户将要做什么。

我知道这是旧的,但以防其他人找到它。 send_keys 使用默认的 selenium 实现,它像用户一样键入键。如果你 "can" 使用这个,你 "should" 使用这个。