4

我正在使用 RSpec 和 Capybara 进行 Ruby on Rails 测试。

我的 Rails 应用程序已针对多种不同的语言(英语、德语等)进行了本地化。

例如,我希望 Capybara 提交一个表单,但显然不能使用它的值来选择它,因为值会根据选择的语言而变化。

这在我的情况下不起作用:

click_button("Create my account")

有什么方法可以简单地input[type="submit"]使用 Capybara 选择页面上的第一个元素?

谢谢你的帮助。

4

4 回答 4

10

您可以为按钮分配一个ID并单击它

click_button("button_id")

来源:http ://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions#click_button-instance_method

于 2013-02-22T16:49:30.037 回答
8

我会说:

find('input[type="submit"]').first.click

但是给它一个类或一个ID,它会更安全。

于 2013-02-22T16:48:51.973 回答
1

简单的方法:

first('input[type="submit"]').click
于 2014-08-27T18:30:21.343 回答
1

您还可以使用 css 选择器缩小@apneadiving 的答案:

find("#my_form input[type='submit']").click

这样您就不必修改 HTML 来匹配您的测试。

于 2017-07-14T06:28:44.383 回答