2

小心使用 'set' 而不是其他内置方法,因为它在更改值后不会触发事件,正如这里的评论中指出的那样:如何在 Capybara 中使用 fill_in 和 find (如果可能)

例如

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

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

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

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

4

2 回答 2

2

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

于 2015-11-10T10:30:37.237 回答
1

如果你在做浏览器自动化,你需要考虑你的用户会做什么。

我知道这是旧的,但如果其他人发现它。send_keys使用默认的 selenium 实现,它像用户一样键入键。如果您“可以”使用它,那么您“应该”使用它。

于 2019-02-22T12:35:13.340 回答