为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Selenium通过索引选择Xpath节点集中的指定节点?

如何使用Selenium通过索引选择Xpath节点集中的指定节点?

慕森王 2019-08-27 13:27:10
如何使用Selenium通过索引选择Xpath节点集中的指定节点?我正在写一个Selenium测试用例。这是我用来匹配数据表中所有“修改”按钮的xpath表达式。//img[@title='Modify']我的问题是,如何通过索引访问匹配的节点集?我试过了//img[@title='Modify'][i]和//img[@title='Modify' and position() = i]但是都不起作用..我也试过XPath checker(一个firefox扩展)。发现总共有13个匹配,然后我完全不知道如何选择其中一个.. 或者XPath是否支持指定选择不在同一父节点下的节点?
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

这是一个FAQ

//someName[3]

意味着someName文档中的所有元素,即someName父元素的第三 个子元素 - 可能有许多这样的元素。

你想要的正是第3个someName元素

(//someName)[3]

说明[]优先级高于(优先级)////someName当您需要指定所选节点列表的第N个节点时,请记住始终将类型的表达式放在括号中。


查看完整回答
反对 回复 2019-08-27
?
动漫人物

TA贡献1815条经验 获得超10个赞

i在XPath中没有。

要么使用文字数字: //img[@title='Modify'][1]

或者动态构建表达式字符串:( '//img[@title='Modify']['+i+']'但请记住,动态XPath表达式XSLT中不起作用)。

或者XPath是否支持指定的不在同一父节点下的节点选择?

是: (//img[@title='Modify'])[13]


//img[@title='Modify'][i]意味着“任何<img>标题为'Modify'且名为的子元素<i>。”


查看完整回答
反对 回复 2019-08-27
?
撒科打诨

TA贡献1934条经验 获得超2个赞

//img[@title='Modify'][i]

是的缩写

/descendant-or-self::node()/img[@title='Modify'][i]

因此返回同一父节点下的第i个节点。

你要

/descendant-or-self::img[@title='Modify'][i]


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 726 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信