如何检测Watir中是否存在元素

Rij*_*and 9 ruby watir

我对Watir比较新,但是找不到关于如何检查元素是否存在的好文档(示例).当然有API规范,但如果我找不到一个例子,这些对我来说没什么意义.

我尝试了两种组合,但似乎没有任何效果...如果browser.image(:src"/media/images/icons/reviewertools/editreview.jpg").exists那么...如果browser.image(:src" /media/images/icons/reviewertools/editreview.jpg").exists?然后...

如果有人对如何实现这一点有具体建议,请帮忙!谢谢!

kat*_*oon 17

您似乎缺少参数之间的逗号.

应该

if browser.image(:src, "/media/images/icons/reviewertools/editreview.jpg").exists?
Run Code Online (Sandbox Code Playgroud)

此外,您可以在将来查找此页面以了解支持的属性.


Dav*_*lla 2

看来您使用它是正确的。这是Watir 的旧RDoc 。

是不是因为 Watir 找不到它而不起作用?很难说,因为没有来源或链接到正在测试的页面。我认为我只使用image.exists?。一般来说,图像存在但未找到时出现的错误有:

  1. how 与元素类型不兼容。这里有一个备忘单可以帮助您了解可以找到哪些具有不同属性的对象类型。
  2. 什么是不正确的。你可能需要稍微尝试一下。考虑尝试使用正则表达式字符串来匹配它,例如 browser.image(:src, /editreview.jpg/)。作为最后的手段,也许可以使用 element_by_xpath,但这样做会产生维护成本。
  3. 位置不正确。也许该元素位于框架或类似的东西中。browser.frame("详细信息").image(:src, /editreview.jpg/)。

尝试一下,但请让我知道什么有效。还有一件事,你要检查什么?如果它是测试标准的一部分,您可以这样处理。如果您需要单击它,那么忘记了 .exists?然后点击它即可。如果它不存在,Ruby 会通知您。如果您需要它来恩典,请了解begin/rescue

祝你好运,

戴夫