在Ruby 2.3.3中使用watir-webdriver
我需要从HTML下面找到所有Div的属性(data-id)
<div id="response1">
<div data-id="2">
<span>XYZ</span></div>
<div data-id="3">
<span>XYZ</span></div>
<div data-id="4">
<span>XYZ</span>
<div></div>
</div>
<div data-id="5">
<span>XYZ</span></div>
<div data-id="6">
<span>XYZ</span></div>
<div data-id="7">
<span>XYZ</span>
<div></div></div>
</div>
但是当我使用
时@browser.div(id: "response1").divs
我得到8个div元素,我期待只有6个子div元素具有属性'data-id',但似乎.divs捕获了html中的所有div元素。
有没有办法只捕获那6个div元素。
答案 0 :(得分:2)
如果您使用的是Watir v6.2或更高版本,则会有一个新的#children
方法可以找到直接的孩子:
browser.div(id: "response1").children
它接受标准定位器。例如:
# is a div tag
browser.div(id: "response1").children(tag_name: 'div')
# has a data-id containing 5
browser.div(id: "response1").children(data_id: /5/)
如果您使用的是旧版本,则必须编写XPath:
browser.div(id: "response1").divs(xpath: './div')