如何在watirwebdriver中使用:class选择器进行精确匹配



关于Watir 0.5.x的向后不兼容更改通过查找元素:class现在匹配分部类属性。

我该如何获得旧的行为?即匹配准确的类名。

它破坏了我的代码,在一个例子中:

# expand all multiple records
 while  $browser.div(:class => "expander").exists?  
  $browser.div(:class => "expander").click
 end

因为一旦.click出现,div就会变成"expander hasChildren"(可能还有其他类,具体取决于表行的颜色和内容)。有没有更好的方法来编写扩展所有仍然折叠的行的代码?

要匹配确切的类名,可以使用带有起始和结束锚点的正则表达式:

$browser.div(:class => /^expander$/).exists?

这将完全匹配"扩展器",但不匹配"扩展器hasChildren"或"某种扩展器"。

对于您的另一个问题,即是否有更好的方法来扩展所有行,我认为这实际上取决于页面的HTML外观。你有一个例子吗?当我在类似的控件中遇到类似的问题时,我可以使用可点击控件周围的div结构来使搜索更加具体。

最新更新