[英]Python: Selenium - Message: element not interactable
新手想弄明白。 我四處尋找答案,但沒有找到。
在嘗試與網頁交互時,我從 Python 收到此消息:
元素不可交互
這是我的代碼:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://www.annemcgilvray.com")
search = driver.find_element_by_name("q")
search.send_keys("test")
我試過等待和隱式等待。 我不認為它在 iframe 中,盡管頁面上有 iframe。
任何幫助,將不勝感激!
當我嘗試你的代碼時,問題是網站沒有調整到我的瀏覽器 window 的大小,搜索字段不在視野范圍內,因此無法與之交互,盡管 selenium 可以找到它。
我嘗試使用execute_script
其滾動到視圖中,然后 send_keys 起作用了。
from selenium import webdriver
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://www.annemcgilvray.com")
search = wait.until(EC.visibility_of_element_located((By.NAME, "q")))
driver.execute_script(f"window.scrollBy({search.location['x']},0)")
search.send_keys("test")
您需要添加等待/延遲以讓元素在訪問之前完全加載。
最好的方法是使用預期條件實現的顯式等待,如下所示:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
wait = WebDriverWait(driver, 20)
driver.get("https://www.annemcgilvray.com")
search = wait.until(EC.visibility_of_element_located((By.NAME, "q")))
search.send_keys("test")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.