2017-10-19 121 views
1

使用的Watir-webdriver的使用Ruby 2.3.3捕獲直接子在HTML

我需要從以下HTML

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

找到所有div的有屬性(數據-ID),但是當我使用

@browser.div(id: "response1").divs 

我得到8個div元素,我期待只有6個具有屬性'data-id'的子div元素,但看起來像.divs捕獲該html內的所有div元素。

有沒有什麼辦法來捕捉這6個div元素。

回答

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') 
+0

我在舊的Watir和你使用XPath了一些解決方案爲我工作。 –