首页 文章

如何使用RSpec和Capybara定位本地化按钮?

提问于
浏览
4

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

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

例如,我希望Capybara提交表单,但显然不能使用其值来选择它,因为值会根据所选语言而改变 .

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

click_button("Create my account")

有没有办法简单地选择Capybara页面上的第一个 input[type="submit"] 元素?

谢谢你的帮助 .

4 回答

  • 9

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

    click_button("button_id")
    

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

  • 1

    我会说:

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

    但是给它一个类或一个id,它更安全 .

  • 8

    简单方法:

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

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

    find(“#my_form input [type ='submit']”) . 点击

    这样您就不必修改HTML以匹配您的测试 .

相关问题