-4

我的项目在我更新 gems 之前运行良好,现在它开始给我一些 xpaths 的错误

4

3 回答 3

6

我猜通过“更新宝石”,您将 Capybara 升级到 2.0。这需要更具体的匹配,如Jonas Nicklas的公告中所述:

click_link当通过和等方法查找元素并与之交互时fill_in,如果匹配的元素不止一个,之前 Capybara 会尝试猜测您指的是哪一个。从现在开始,Capybara 将改为引发异常。例如,如果您有两个名为“密码”和“密码确认”的字段,fill_in "Password", :with => "test"则会引发异常。

简单的解决方案是通过使用 CSS 类/ID 或更具体的 XPath 而不是文本标签来使您的选择器更具体。

于 2012-11-22T02:12:31.190 回答
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

于 2012-11-22T02:37:32.450 回答
0

例如:给定属性

Cucumber/capybara 使用标签,因此像这样更改其中一个标签的客户名称;


<%= f.label :password_confirmation, "确认" %>
<%= f.password_field :password_confirmation %>

于 2013-01-01T14:23:36.193 回答