如何使用Selenium通过索引selectXpath节点集中的指定节点?
我正在写一个Seleniumtesting用例。 这里是我用来匹配数据表中所有“修改”button的xpathexpression式。
//img[@title='Modify']
我的问题是,如何通过索引访问匹配的节点集? 我试过了
//img[@title='Modify'][i]
和
//img[@title='Modify' and position() = i]
但都没有工作..我也尝试过XPath检查器(一个Firefox扩展)。 总共find13个匹配,然后我完全不知道如何select其中一个。 或者XPath支持指定不在同一父节点下的节点的select?
这是一个常见问题 :
//someName[3]
意味着 :文档中的所有someName
元素,即它们父代的第三个someName
子元素 – 可能有许多这样的元素。
你想要的就是第三个someName
元素 :
(//someName)[3]
说明 : []
具有比//
更高的优先级(优先级)。 当你需要指定他们所select的节点列表的第N个节点时,总是要把types为//someName
放在括号中。
XPath中没有i
。
您可以使用文字数字: //img[@title='Modify'][1]
或者你dynamic地构buildexpression式string: '//img[@title='Modify']['+i+']'
(但是请记住dynamicXPathexpression式不能在 XSLT中使用)。
或者XPath支持指定不在同一父节点下的节点的select?
是: (//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]
(// * [@ attribute ='value'])[index]find元素的目标,同时find其中的多个匹配
- 使用Selenium WebDriver切换选项卡与Java
- 在Selenium中inputEnter / Return键
- selenium使用Python – Geckodriver可执行文件需要在PATH中
- 如何在Chrome开发者工具或Firefox的Firebug中validationXPathexpression式?
- 如何使用Selenium Webdriver下载任何文件并将其保存到所需的位置
- MSTest中的和会有什么替代?
- JavaScript模拟右键单击代码
- selenium – 其他方式基本authentication比通过url
- Webdriver无法在45000 ms后连接到端口7055上的主机127.0.0.1