【问题标题】:Sanity Check with XPath in Ruby Watir在 Ruby Watir 中使用 XPath 进行健全性检查
【发布时间】:2010-10-30 19:19:44
【问题描述】:

我正在使用 Ruby Watir 库为客户端进行自动化测试,但我遇到了 XPath 选择器的问题。我想我只需要另一双眼睛让我知道我是否只是错过了什么。

这是我正在使用的选择器:

puts ie.cell(:xpath, "//img[@src='3.jpg']/../").text

对于这组表格,它按预期工作并打印“第三张图像”:

<table>
  <tr>
    <td><img src="1.jpg">First Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="2.jpg">Second Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="3.jpg">Third Image</td>
  </tr>
</table>

但是当我删除第二个表时它正在中断:

<table>
  <tr>
    <td><img src="1.jpg">First Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="3.jpg">Third Image</td>
  </tr>
</table>

使用上面的 puts 代码,我在第二个示例中得到了这个错误:

Watir::Exception::UnknownObjectException: Unable to locate element, using :xpath, "//img[@src='3.jpg']/../"

【问题讨论】:

  • 这两种情况在这里都可以正常工作。 1.8.6 在 XP 上。
  • 我建议您也将您的问题发布到groups.google.com/group/watir-general。那里有 1400 多个 Watir 用户。
  • 真的很奇怪。我也转载了。奇怪的是:b.cell(:xpath, "//img[@src='2.jpg']/../").text => "Third Image"

标签: ruby xpath watir


【解决方案1】:

我重现了这个问题,重新启动浏览器 (IE6) 为我解决了这个问题。

【讨论】:

  • 启动一个新的 IE 实例确实解决了这个问题。不过,我遇到了很多奇怪的错误。我的桌面上有一个要测试的 html 文件。如果我修改了 html 文件并刷新了页面,xpath 选择器将根本无法始终如一地工作。但是,使用其他选择器,这样的 ad :id 可以正常工作。另一个不起作用的例子是,如果我更改了 src 属性,xpath 选择器将不会在页面刷新后获取更改。
  • 我不确定发生了什么。听起来像一个缓存问题。如果您想要更好的答案,请将其发布到 watir-general 组,那里有更多了解 Watir 的人。
【解决方案2】:

对于当前版本的 Watir,更好的方法是

browser.img(:src => '3.jpg').parent.text

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 2011-01-12
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多