慕森王
2019-08-27 13:27:10
如何使用Selenium通過索引選擇Xpath節(jié)點集中的指定節(jié)點?我正在寫一個Selenium測試用例。這是我用來匹配數(shù)據(jù)表中所有“修改”按鈕的xpath表達式。//img[@title='Modify']我的問題是,如何通過索引訪問匹配的節(jié)點集?我試過了//img[@title='Modify'][i]和//img[@title='Modify' and position() = i]但是都不起作用..我也試過XPath checker(一個firefox擴展)。發(fā)現(xiàn)總共有13個匹配,然后我完全不知道如何選擇其中一個.. 或者XPath是否支持指定選擇不在同一父節(jié)點下的節(jié)點?
3 回答

12345678_0001
TA貢獻1802條經(jīng)驗 獲得超5個贊
這是一個FAQ:
//someName[3]
意味著:someName
文檔中的所有元素,即someName
父元素的第三 個子元素 - 可能有許多這樣的元素。
你想要的正是第3個someName
元素:
(//someName)[3]
說明:[]
優(yōu)先級高于(優(yōu)先級)//
。//someName
當您需要指定所選節(jié)點列表的第N個節(jié)點時,請記住始終將類型的表達式放在括號中。

動漫人物
TA貢獻1815條經(jīng)驗 獲得超10個贊
i
在XPath中沒有。
要么使用文字數(shù)字: //img[@title='Modify'][1]
或者動態(tài)構建表達式字符串:( '//img[@title='Modify']['+i+']'
但請記住,動態(tài)XPath表達式在XSLT中不起作用)。
或者XPath是否支持指定的不在同一父節(jié)點下的節(jié)點選擇?
是: (//img[@title='Modify'])[13]
這//img[@title='Modify'][i]
意味著“任何<img>
標題為'Modify'且名為的子元素<i>
?!?/p>

撒科打諢
TA貢獻1934條經(jīng)驗 獲得超2個贊
//img[@title='Modify'][i]
是的縮寫
/descendant-or-self::node()/img[@title='Modify'][i]
因此返回同一父節(jié)點下的第i個節(jié)點。
你要
/descendant-or-self::img[@title='Modify'][i]
添加回答
舉報
0/150
提交
取消