在表格中,有如下行:
<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;
的行?
答案 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
属性。