[英]Unable to locate element by xpath using Selenium with Python
[英]Message: no such element: Unable to locate element error finding an element using Xpath Selenium and Python
這是我嘗試使用 Selenium 為自動化程序點擊的元素:
<input id="btnNextWeek" title="Next Week" onclick="if (this.className != 'mybtndis2') { moveweek(7) }" type="button" value=">>" name="btnNextWeek" class="mybtn2" style="-webkit-appearance: button; padding-left: 8px; padding-right: 8px; height: auto">
收到此錯誤:
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@title="Next Week"]"} (Session info: chrome=83.0.4103.116)
這是給出錯誤的代碼:
self.driver.find_element_by_xpath("//input[@title=\"Next Week\"]")\
.click()
有什么建議么?
使用這個 - driver.find_element_by_xpath('//input[@title="Next Week"]').click()
這將起作用。始終如果您在使用雙引號之前使用單引號來擺脫 escaping 並且我們不需要轉義。 在 click() 之前,因為這里。 用於調用方法。
謝謝。
所需的元素是啟用JavaScript的元素,因此要單擊元素,您必須為element_to_be_clickable()
誘導WebDriverWait並且您可以使用以下任一定位器策略:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.mybtn2#btnNextWeek[title='Next Week'][name='btnNextWeek']"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='mybtn2' and @id='btnNextWeek'][@title='Next Week' and @name='btnNextWeek']"))).click()
注意:您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
您可以在以下位置找到一些關於沒有此類元素的相關討論:
可能是找不到元素,因為它在 iframe 中...如果是這樣,那么您可以使用
frame = driver.find_element_by_xpath('insert frame xpath')
driver.switch_to.frame(frame)
driver.find_element_by_xpath('//input[@title="Next Week"]').click()
driver.switch_to.default_content()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.