簡體   English   中英

找不到元素-xPath正確

[英]Can't find element - xPath correct

因此,我有一個XPath(我已經通過Google Chrome瀏覽器工具驗證了此功能並具有1個唯一的值。

我嘗試了各種方法來嘗試獲取此xpath,最初使用right click > copy xpath在chrome中right click > copy xpath給了我:

//*[@id="hdr_f0f7cdb71b9a3f44782b87386e4bcb3e"]/th[2]/span/a

但是,此ID在每次重新加載時都會更改。

因此,我最終將其歸結為:

//th[@name="name"]/span/a/text()

element = driver.find_element_by_xpath("//th[@name='name']/span/a/text()")
print(element)


selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//th[@name='name']/span/a/text()"}

檢查一下:

len(driver.find_elements_by_xpath('//*[contains(@id, "hdr_")]'))

如果您不會得到很多元素,則可以完成以下操作:

driver.find_elements_by_xpath('//*[contains(@id, "hdr_")]')

您不應將/ text()用於WebElement。 使用“ // th [@ name ='name'] / span / a”作為Xpath並使用element.text打印文本(不確定Python的確切方法,但在Java中是element.getText())

我會建議使用絕對XPath而不是相對XPath,如果id隨每次加載而變化,它可能會解決它。 請在下面使用Google搜索欄查看絕對XPath與相對XPath有何不同。

  • 相對XPath-// * [@@ id =“ tsf”] / div [2] / div / div [1] / div / div [1] / input
  • 絕對XPath-/ html / body / div / div [3] / form / div [2] / div / div [1] / div / div [1] / input

我理解您所說的無法共享鏈接,但是如果您可以共享顯示DOM的檢查元素快照,那么這里的人可以為您提供幫助。 因此,如果XPath中存在問題,則可以將其糾正。 謝謝 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM