selenium 运行出错 element not interactable 解决方法

【前言】我遇到的情况,同类型级别的标签,在有界面的情况下运行都是正常的,在无头(界面)的情况下运行,点击第一个标签正常,点击第二个标签就会出现 element not interactable 这样的错,排错查找了好久好久才解决掉,故记录。
出现这个元素不可交互的原因可能有如下几种:
在这里插入图片描述

1.设置等待超时时间

  1. 页面程序运行比较快,但是页面还未加载该元素,导致后续的操作定位不到该元素
    建议:添加selenium的超时时间,隐式等待,现实等待,线程睡眠等待。
    设置等待超时:https://blog.csdn.net/qq_34846877/article/details/112079455

2.元素定位不正确

  1. 定位的元素的标签不正确,因为好多网页元素的id标签和class标签是动态,每次请求可能会变动
    建议:采用 By.cssSelector(), By.xpath(), By.name(name), By.tagName(tagName)等多种方式尝试
    元素定位:https://blog.csdn.net/qq_34846877/article/details/111629838

3.无头模式参数设置

  1. 如果有界面情况下正常,无头模式情况下出现 element not interactable错误
    建议:添加上 options.addArguments("–window-size=1920,1080");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");
    options.addArguments("--window-size=1920,1080");	//建议设置窗口大小
    options.setHeadless(true);	//开始无头模式
    driver = new ChromeDriver(options);
    

如上三种方法供大家参考,如果还有其它情况欢迎随时留言评论一起探讨。

GitHub 加速计划 / eleme / element
15
3
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐