“element not interactable”問題根因:元素不可交互,可能的原因及解決方法如下所示:
1、檢查元素的定位(XPATH、CSS_SELECTOR內的內容)是否寫正確
2、代碼中元素進行獲取的時候查看是否已經加載出來,等待元素加載可以使用顯式等待
element = WebDriverWait(browser,20,0.5).until(EC.presence_of_element_located((By.XPATH,'//*[@id="app"]/div')))
3、元素在頁面上不可見,需要拖動下拉框才能看到這個元素,此時需要讓元素在頁面上可見,才可操作
4、
可能是頁面元素被iframe標簽包裹起來了:如163郵箱登錄
from time import sleep from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(10) driver.get("https://mail.163.com/") driver.find_element_by_link_text("密碼登錄").click() driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@scrolling="no"]')) #需要定位到iframe標簽 driver.find_element_by_xpath('//input[@name="email"]').send_keys("lmsgau") driver.find_element_by_link_text("登 錄").click() #源代碼中若是有空格,此處也必須有空格 sleep(10) driver.quit()