使用findElements()
和size()
方法我們可以得到計數。 但我想在xpath中使用count()函數提取計數。如何在硒的xpath中使用count()函數?
計數函數會返回一個整數值嗎?
假設, 我的XPath是(//input[@id='stack'])[3]
,並有與//input[@name='hai']
3層匹配的節點,我可以修改我的XPath像下面?
(//input[@id='stack'])[count(//input[@name=''hai])]
使用findElements()
和size()
方法我們可以得到計數。 但我想在xpath中使用count()函數提取計數。如何在硒的xpath中使用count()函數?
計數函數會返回一個整數值嗎?
假設, 我的XPath是(//input[@id='stack'])[3]
,並有與//input[@name='hai']
3層匹配的節點,我可以修改我的XPath像下面?
(//input[@id='stack'])[count(//input[@name=''hai])]
是的,如果
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
元素 - 一個奇怪的假設。
driver.findElements()
返回WebElements的名單,並.size()
返回一個列表的整數大小,所以我覺得你們會有更好做了以下內容:
int myCount = driver.findElements(By.xpath("<Your Xpath Here>")).size();
這將讓您元素的個數在您的網頁上匹配您的xpath輸入
嘿@kjhughes謝謝ton..its工作! – Toothless