簡體   English   中英

復制xpath不能提供正確的xpath?

[英]Copy xpath Doesn't Provide Correct xpath?

我一直在嘗試使用python中的硒包單擊按鈕。 不過,我一直在弄不清楚如何識別按鈕。 經過太多時間后,我嘗試從javascript控制台手動復制xpath ,但是在嘗試調用driver.find_element_from_xpath('<xpath>')時收到NoSuchElementException

我真的不確定這怎么可能。 HTML非常長-我最終試圖定位的內容嵌套在多個表,正文,td,tr標簽下。 這是元素:

<a href="Javascript:void" onclick="javascript:toggleDisplay(this, trAK);return false;">Alaska</a>

當我在Chrome中點擊“復制Xpath”時,它返回了以下字符串: //*[@id="Form1"]/table/tbody/tr[3]/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[5]/td/table/tbody/tr[3]/td/table[1]/tbody/tr[1]/td[2]/a

我對此很陌生,因此任何人都可以幫助我了解為什么這不起作用和/或我可以做些什么來解決它?

所需的元素是啟用JavaScript的元素,因此要對元素click()就必須為element_to_be_clickable()誘導WebDriverWait ,並且可以使用以下兩種定位器策略之一

  • 使用LINK_TEXT

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Alaska"))).click() 
  • 使用(邏輯) XPATH (而不是絕對xpath):

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@onclick, 'toggleDisplay') and text()='Alaska']"))).click() 
  • 注意 :您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC 

暫無
暫無

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

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