如何使用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个节点时,请记住始终将类型的表达式放在括号中。
动漫人物
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>
。”
撒科打诨
TA贡献1934条经验 获得超2个赞
//img[@title='Modify'][i]
是的缩写
/descendant-or-self::node()/img[@title='Modify'][i]
因此返回同一父节点下的第i个节点。
你要
/descendant-or-self::img[@title='Modify'][i]
添加回答
举报
0/150
提交
取消