如何使用:watir-webdriver中的类选择器完全匹配

时间:2012-02-16 18:50:31

标签: css-selectors watir watir-webdriver

关于Watir 0.5.x的向后不兼容的变化 Finding elements by :class now matches partial class attributes.

我如何得到旧的行为?即匹配确切的类名。

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

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

因为.click编辑后,div变为“expandder hasChildren”(可能还有其他类,具体取决于表格行颜色和内容)。是否有更好的方法来编写扩展仍然折叠的所有行的代码?

1 个答案:

答案 0 :(得分:4)

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

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

这将完全匹配“扩展器”,但不匹配“扩展器hasChildren”或“扩展器”。

关于是否有更好的方法来扩展所有行的其他问题,我认为这实际上取决于页面的HTML是什么样的。你有一个例子吗?当我遇到类似控件的类似问题时,我能够使用可点击控件周围的div结构来使搜索更具体。