关于 Watir 0.5.x 的向后不兼容更改 Finding elements by :class now matches partial class attributes.
如何获得旧行为? IE。以匹配确切的类名。
在一种情况下,它破坏了我的代码:
# expand all multiple records
while $browser.div(:class => "expander").exists?
$browser.div(:class => "expander").click
end
因为一旦 .click
ed,div
的 class 就变成了 "expander hasChildren"(并且可能其他类,取决于表格行的颜色和内容)。有没有更好的方法来编写展开所有仍折叠的行的代码?
最佳答案
要匹配准确的类名,您可以使用带有开始和结束 anchor 的正则表达式:
$browser.div(:class => /^expander$/).exists?
这会完全匹配“expander”,但不会匹配“expander hasChildren”或“something expander”。
关于是否有更好的方法来展开所有行的其他问题,我认为这实际上取决于页面的 HTML 的外观。你有例子吗?当我遇到类似控件的类似问题时,我能够使用可点击控件周围的 div 结构来使搜索更加具体。
关于css-selectors - 如何使用 :class selector in watir-webdriver 精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317245/