我的项目工作正常之前我更新宝石现在它开始给我一些xpath的错误
答案 0 :(得分:6)
我猜“更新宝石”,你将Capybara升级到2.0。这需要更具体的匹配,如Jonas Nicklas在announcement中所述:
当通过诸如
click_link
和fill_in
之类的方法查找元素并与元素交互时,如果有多个匹配的元素,之前Capybara会尝试猜测你的意思。从现在开始,Capybara将提出异常。例如,如果您有两个名为“密码”和“密码确认”的字段,则fill_in "Password", :with => "test"
将引发异常。
简单的解决方案是通过使用CSS类/ ID或更具体的XPath而不是文本标签来使您的选择器more specific。
答案 1 :(得分:1)
// html / body / div / div / div [3] / div [2] / div / div / div / a [2]是你通常使用firebug得到的非常差的xpath。这是总共10个非常脆弱的正斜线。确实,开发人员有时会遗漏ID(并随机使用css类),但如果是这种情况,我建议他们让ID输入。
这将使你从
开始//html/body/div/div/div[3]/div[2]/div/div/div/a[2]
到
//a[@id='id_2']
要容易得多,但需要与开发人员密切合作
我的建议是阅读以下文章:http://www.w3schools.com/xpath/xpath_syntax.asp
答案 2 :(得分:0)
例如:给定属性
Cucumber / capybara使用标签,因此更改其中一个标签的客户名称;
<%= f.label:password_confirmation,“确认”%>
<%= f.password_field:password_confirmation%>