如何在selenium的xpath中使用count()函数?

时间:2016-12-01 17:23:29

标签: selenium xpath count

使用findElements()size()方法,我们可以获得计数。 但我想使用xpath中的count()函数提取计数。

count函数会返回一个整数值吗?

假设, 我的xpath是(//input[@id='stack'])[3],有3个匹配的节点//input[@name='hai']

我可以像下面那样修改我的xpath吗?

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

2 个答案:

答案 0 :(得分:2)

是的,如果

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

评估为

3

然后

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

将选择与

相同的节点
(//input[@id='stack'])[3]

会选择。

但是,你的意图还不清楚,特别是考虑到

  • //input[@id='stack']将选择所有input元素 id属性值'stack'。通常id个属性值 在整个文档中是唯一的,所以通常这只会选择一个 单个元素。

  • (//input[@id='stack'])[count(//input[@name='hai'])]假设至少有input个元素ID被'stack'因为有input个元素名为'hai' - 这是一个奇怪的假设。

答案 1 :(得分:1)

driver.findElements()返回Web元素列表,.size()返回列表的整数大小,所以我认为最好不要执行以下操作:

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

这将为您提供页面上与您的xpath输入相匹配的元素数