我是 Selenium 的新手,很難弄清楚如何編寫 xpath。我能夠找到以下 xpath 的元素://*[@id="validation-item-0"]/div[3]/div/div[2]/ul/li[16]我如何在java中編寫代碼以根據上面的xpath找到以下xpath?//*[@id="validation-item-0"]/div[3]/div/div[2]/ul/li[16]/ul[1]/li/ul/li[4]作為新手,我對 ul 和 li 項目真的很困惑。任何幫助,將不勝感激。謝謝。
1 回答

冉冉說
TA貢獻1877條經驗 獲得超1個贊
根據XPath 語法文章
.
- 選擇當前節點
因此,您應該能夠搜索相對于前一個元素的下一個元素,例如:
WebElement?element1?=?driver.findElement(By.xpath("http://*[@id='validation-item-0']/div[3]/div/div[2]/ul/li[16]")); WebElement?element2?=?element1.findElement(By.xpath("./ul[1]/li/ul/li[4]"));
我建議擺脫這個div[3]
,li[16]
等等,因為即使是輕微的標記變化也會破壞你的表達和測試。?請注意,您可以像后代一樣使用XPath 軸,這樣您的表達會更加健壯和可靠
另外,這ul[16]
看起來不太好,<ul>
標簽代表無序列表,所以我的期望是你不應該使用索引,而應該堅持使用元素文本,例如:
WebElement?myElement?=?driver.findElement(By.xpath("http://ul[contains(text(),'element?text?here')]"));
其中contains()
是可用于文本部分匹配的XPath 函數
添加回答
舉報
0/150
提交
取消