javascript - Capybara Set 更改值后不触发事件

标签 javascript capybara web-testing site-prism

请小心使用“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/

相关文章:

asp.net - 我可以将 Webrat 用于 ASP.NET 应用程序吗?

c# - 如何对 ASP.NET MVC View 进行 Web 测试?

angularjs - cucumber / capybara + Angular : Test passes using selenium driver, 但不是恶作剧鬼

ruby - 使用 capybara cucumber 选择多项选择中的所有选项

ruby - 如何使用 Ruby 调用带有定义的 Capybara 驱动程序的 Selenium 方法?

node.js - 多次登录的 Web 测试

javascript - 你如何在 Bootstrap 3 中保持打开多个折叠?

php - 在 JavaScript 或 PHP 中转义撇号

javascript - 当焦点在 HTML 表单上丢失时如何重新聚焦到文本字段?

javascript - 如何设置我的网页以从文本字段获取输入并将其用作页面上的新文本?