找到没有风格的元素

时间:2015-07-08 05:56:45

标签: ruby watir watir-webdriver

在表格中,有如下行:

<tr id="filtersJob_intrinsicTable_row6" class="evenRow" style="display: none;">some stuff here<tr>
<tr id="filtersJob_intrinsicTable_row7" class="evenRow">some stuff here<tr>

如何使用watir获取要显示的行,即没有style="display: none;的行?

2 个答案:

答案 0 :(得分:2)

您可以通过多种方式收集没有style属性的元素:

使用:css定位器:

browser.trs(css: 'tr:not([style])')

使用:xpath定位器:

browser.trs(xpath: '//tr[not(@style)]')

您还可以检查属性值:

browser.trs.select { |tr| tr.attribute_value('style').nil? }

请注意,您应该谨慎使用style属性作为正在显示的行的指示符。有人可以添加一些其他不相关的样式属性,然后所有测试都将失败。相反,我建议您查找存在的行:

browser.trs.select(&:present?)

我认为这也使代码的目的更加明显和可读。

答案 1 :(得分:0)

使用xpath:

browser.element_by_xpath(".//tr[not(@style)]")

[not(@style)]表示没有style属性。