查找没有样式的元素

Find element which has no style

在一个table中,有这样的行:

<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; 的行?

使用 xpath:

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

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

您可以通过多种方式收集不带 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?)

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