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

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);
    

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

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值