css-selectors - 如何使用 :class selector in watir-webdriver 精确匹配

标签 css-selectors watir watir-webdriver

关于 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

因为一旦 .clicked,divclass 就变成了 "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/

相关文章:

watir - 在Watir-webdriver中设置浏览器窗口大小

带有 watir webdriver : Need help using helperApps. 的 Firefox 4 neverAsk 不提示保存 CSV

selenium-webdriver - 在 watir 中自动下载文件

CSS 属性选择器 : how to escape newlines within attribute value?

node.js - puppeteer 中的 page.$eval 函数始终返回未定义

javascript - Ruby - Watir - 使用解释的 js 获取 HTML

watir - 如何在访问 Watir 网页之前加载 cookie

python - CSS Selector 获取元素属性值

css - 是否可以通过 css 选择器通过多个伪类来定位元素?

java - Watir-webdriver 结合 java