2017-04-06 35 views
0

是新手程序員硒請幫助我的子元素節點...紅寶石硒網絡驅動程序:如何計算一個特定節點

我有以下HTML,我試圖計算元素<div class="result-controls">的子節點這是4(1 div和3種li元素)

<div class="result-controls"> 
    <div class="attachment"> 
     <li class="add-attachment-button-column"><a><button>ADD ATTACHMENTS</button></a></li><input type="file" multiple="" style="display: none;"> 
    </div> 
    <li class="sign-button-column"><a href="javascript:void(0)"><button>SIGN</button></a></li> 
    <li class="draft-button-column"><a><button>DRAFT</button></a></li> 
    <li class="delete-column"> <a href="javascript:void(0)"><svg class="glyphicon-trash" viewBox="0 0 100 100"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trash"></use></svg> </a></li> 
</div> 

目前正在計算計如下單獨(row變量具有上述HTML)

li_actions_count = row.find_elements(:xpath => "./li").length 
    div_actions_count = row.find_elements(:xpath => "./div").length 

誰能幫我用一個簡單的方法使用硒網絡驅動程序來做到這一點的紅寶石

回答

1

有一些不同可能的方式行的直接孩子有關您希望XPath如何具體化的信息,請參閱如果你只是想指望任何名稱的子元素,那麼你可以使用*

row.find_elements(:xpath => "*").length 

,如果你想具體計算某些名稱的子元素,即lidiv

row.find_elements(:xpath => "*[self::li|self::div]").length 
+0

感謝@ har07,也有可能像第一個和第二個'li'元素一樣獲得子元素名稱我想要路徑'li/a'的子元素作爲'button'和路徑'li/a'的第三個'li'元素作爲'svg'有可能嗎? – RanPaul

+0

編號。XPath只能夠返回源XML中存在的東西,除此之外只有非常有限的可能性,特別是使用Selenium支持的XPath 1.0。 – har07

+0

感謝您的更新,我試圖通過class找到'svg'元素爲'row.find_element(:xpath =>「./li/a/svg[contains(@class,'deleteIcon')]」)'但是它拋出一個例外,我無法找出它有什麼問題,請你幫忙? – RanPaul

1

你可以使用XPath =「./*」