我正在嘗試使用以下代碼查找并單擊包含的螢屏截圖中顯示 OAT (ADS05 ....) 的位置:
oatObj = driver.find_element(By.XPATH,"//span[contains(@class, 'treeImg') and contains(., 'OAT ')]")
oatObj.click()

這是彈出以下錯誤:
ElementNotInteractableException: Message: element not interactable
這個元素絕對是可點擊的,并且我在代碼中的其他地方使用了類似的 XPATH 匹配,它確實有效。任何人都可以看到這個 XPATH 有什么不同嗎?這是單擊時元素和檢查窗格的螢屏截圖:

uj5u.com熱心網友回復:
innerText 確實包含文本OAT,但規范地包含starts-with文本OAT
解決方案
要理想地單擊可點擊元素,您需要為element_to_be_clickable()引入WebDriverWait,您可以使用以下定位器策略:
使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li/span[contains(@class, 'treeImg') and starts-with(., 'OAT')]"))).click()注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
uj5u.com熱心網友回復:
在點擊元素之前嘗試使用等待
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.XPATH,'YourXpath')))
find_elements如果有更多具有相同 xpath 的元素,您也可以使用
您可以使用 Java Script 更改單擊方式并執行操作
uj5u.com熱心網友回復:
ElementNotInteractableException: Message: element not interactable您得到的錯誤是因為該元素在訪問它時不可互動。可能是各種原因,有時它不可見并試圖單擊,有時與其他元素疊加,有時用于視口。
請找到以下解決方案。
#1 使用WebDriverWait()
oatObj=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(@class, 'treeImg') and contains(., 'OAT ')]")))
oatObj.click()
#2 使用Actions class
oatObj=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(@class, 'treeImg') and contains(., 'OAT ')]")))
ActionChains(driver).move_to_element(oatObj).click().perform()
#3 使用JavaScripts Executor
oatObj=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(@class, 'treeImg') and contains(., 'OAT ')]")))
driver.execute_script("arguments[0].click();",oatObj)
請匯入以下庫:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465598.html
標籤:Python 硒 硒网络驱动程序 路径 网络驱动程序等待
上一篇:在SeleniumPython中通過鏈接文本或XPATH使用“查找元素”時,“str”物件不可呼叫錯誤
下一篇:如何從<a>標簽中獲取內部文本
