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

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

我正在写一个Selenium测试用例。这是我用来匹配数据表中所有“修改”按钮的xpath表达式。

//img[@title='Modify']

我的问题是,如何通过索引访问匹配的节点集?我试过了

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

//img[@title='Modify' and position() = i]

但是都不起作用..我也试过XPath checker(一个firefox扩展)。发现总共有13个匹配,然后我完全不知道如何选择其中一个.. 或者XPath是否支持指定选择不在同一父节点下的节点?


慕森王
浏览 732回答 3
3回答

12345678_0001

这是一个FAQ://someName[3]意味着:someName文档中的所有元素,即someName父元素的第三 个子元素 - 可能有许多这样的元素。你想要的正是第3个someName元素:(//someName)[3]说明:[]优先级高于(优先级)//。//someName当您需要指定所选节点列表的第N个节点时,请记住始终将类型的表达式放在括号中。

动漫人物

i在XPath中没有。要么使用文字数字:&nbsp;//img[@title='Modify'][1]或者动态构建表达式字符串:(&nbsp;'//img[@title='Modify']['+i+']'但请记住,动态XPath表达式在XSLT中不起作用)。或者XPath是否支持指定的不在同一父节点下的节点选择?是:&nbsp;(//img[@title='Modify'])[13]这//img[@title='Modify'][i]意味着“任何<img>标题为'Modify'且名为的子元素<i>。”

撒科打诨

//img[@title='Modify'][i]是的缩写/descendant-or-self::node()/img[@title='Modify'][i]因此返回同一父节点下的第i个节点。你要/descendant-or-self::img[@title='Modify'][i]
打开App,查看更多内容
随时随地看视频慕课网APP