2016-12-01 94 views
2

使用findElements()size()方法我們可以得到計數。 但我想在xpath中使用count()函數提取計數。如何在硒的xpath中使用count()函數?

計數函數會返回一個整數值嗎?

假設, 我的XPath是(//input[@id='stack'])[3],並有與//input[@name='hai']

3層匹配的節點,我可以修改我的XPath像下面?

(//input[@id='stack'])[count(//input[@name=''hai])] 

回答

2

是的,如果

count(//input[@name='hai']) 

評估爲

3 

然後

(//input[@id='stack'])[count(//input[@name='hai'])] 

會選擇相同的節點作爲

(//input[@id='stack'])[3] 

會選擇。

但是,你的意圖是相當明確,尤其是考慮到

  • //input[@id='stack']將選擇所有 的'stack'id屬性值input元素。通常id屬性值 在文檔中是唯一的,所以通常這隻會選擇一個 單個元素。

  • (//input[@id='stack'])[count(//input[@name='hai'])]假定有id'ed爲'stack「因爲有一個名爲'hai'input元素至少多達input元素 - 一個奇怪的假設。

+0

嘿@kjhughes謝謝ton..its工作! – Toothless

1

driver.findElements()返回WebElements的名單,並.size()返回一個列表的整數大小,所以我覺得你們會有更好做了以下內容:

int myCount = driver.findElements(By.xpath("<Your Xpath Here>")).size(); 

這將讓您元素的個數在您的網頁上匹配您的xpath輸入