使用findElements()
和size()
方法,我们可以获得计数。
但我想使用xpath中的count()函数提取计数。
count函数会返回一个整数值吗?
假设,
我的xpath是(//input[@id='stack'])[3]
,有3个匹配的节点//input[@name='hai']
我可以像下面那样修改我的xpath吗?
(//input[@id='stack'])[count(//input[@name=''hai])]
答案 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输入相匹配的元素数