[英]Using Selenium, xpath cannot find 'text' element
我是Selenium的新手,無法通過XPath查找元素。 我試圖處理此問題,但花了太多時間,但仍然無法正常工作。
我試圖自動文件從網上下載該網站。
我正在搜索包含版本名稱的元素,然后需要相應地單擊下載圖標。
我正在編寫以下代碼以查找元素
var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div[3]/a[Text()='Firefox 22.0 (Beta 2)']"));
但是,它不起作用,找不到元素。
然后,我需要相應地單擊下載圖標。 我不確定如何單擊與當前版本的Firefox相關的元素。 有什么建議么?
您為什么不使用By.linktext
,對我來說似乎容易得多?
driver.findElement(By.linkText("Firefox 22.0 (Beta 2)")).click();
但是,您的XPath無法正常工作的原因是它不適合網頁的結構。 div[3]
並不表示一個層次結構中一個接一個的三個div,而是表示下一個層次結構中的第三個div
。 您將需要這樣的東西
var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div/div/div/a[text()='Firefox 22.0 (Beta 2)']"));
首先,xpath函數text()
必須以小寫形式編寫。
另外,您要查找的鏈接條目不是第三(3)格。
因為直接下載是div中class =“ right”的鏈接。
請嘗試以下方法:
"//div[div/a[text()='Firefox 22.0 (Beta 2)']]/div[@class='right']/a"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.