selenium出现“element not interactable”问题总结

“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邮箱登录
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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()
posted @   大白熊^_^  阅读(2539)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示