自动化测试记录--element click intercepted

问题描述:我实现一个循环点击和校验弹出框内容信息是否正确的时候。代码跑起来有时候pass有时候fail,fail的时候会报错:

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: 
Element <span role="presentation" id="button-1082-btnIconEl" class="x-btn-icon-el help_sys_icon" unselectable="on" style="">
...</span> is not clickable at point (1347, 68). Other element would receive the click: <div role="presentation" class="x-mask x-mask-fixed" style="top: 0px; left: 0px; z-index: 90001;" id="ext-gen4119"></div>

自我探索后对现象的解释:

说是一个元素被点击的时候被另一个元素打断了,然后我发现是因为点击这个元素的时候页面是未加载完全的,有遮罩,所以这个元素无法被点击。所以当直接使用diver.find_element().click()方法去点击一个元素,这个时候如果这个dom元素已经存在就不会以未找到元素的形式来报错,而是有可能会出现我遇到的这种情况(点击的这个元素的上一个元素存在页面加载时就会大概率出现)。

解决之路:

1.我先是在每一个点击操作后面加time.sleep(3),后来还是不稳定抛出异常,然后我增加睡眠时间5,还是会抛出异常。这时候运行速度大大降低了,但是好像还是不稳定的抛出上面的异常。

2.中间我还没理解那个报错的原因,我一直以为是没找到元素,所以弄了一个循环找,但是根据控制显示元素是找到了,可是还是被打断了,所以我就理解了dom里面能找到元素,不等同页面上显示出来了

3.最后解决问题的方法是:我使用了显示等待。在尝试用了好几种显示等待的方法后,如下,我用上了第三和四种实现了我的功能,第一种和第二种调用click方法没有生效但是也没有报错,不知道什么原因。

  • WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,'su')))
    '''判断某个元素是否被添加到了dom里并且可见,可见代表元素可显示且宽和高都大于0'''
  • WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//*[@id='u1']/a[8]"))).click()
    '''判断某个元素中是否可见并且是enable的,代表可点击'''
    
  • WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(by=By.ID,value='kw')))
    '''判断元素是否可见,如果可见就返回这个元素'''
  • WebDriverWait(driver,10).until(EC.visibility_of_any_elements_located((By.CSS_SELECTOR,'.mnav')))
    '''判断是否至少有一个元素在页面中可见,如果定位到就返回列表'''

element click intercepted相关推荐

  1. 关于element click intercepted报错解决办法

    今天在看python爬虫视频Selenium过程中遇到报错为 selenium.common.exceptions.ElementClickInterceptedException: Message: ...

  2. 已解决selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted:

    已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...

  3. Selenium无法点击元素,报错:ElementClickInterceptedException:element click intercepted

    我们在进行selenium UI自动化测试时,可能会遇到元素可以定位到,但不可点击的情况,如下错误: 这个问题有两种解决方式: 方式一: element = driver.find_element_b ...

  4. selenium点击lebel标签报错element click intercepted

    我的元素标签是 /html/body/div[1]/section/section/section/main/div/div[1]/div/div[1]/div/div[1]/label/span 排 ...

  5. 解决Mac下pycharm不提示element.click()方法

    出现现象: 在pycharm使用pip安装selenium模块后引入,编写元素的click(),send_key()等方法时发现pycharm没有自动提示这些方法 产生原因: pycharm的安装目录 ...

  6. python 打开网页 并填表单_Windows下使用python3 + selenium.webdriver功能实现自动填写网页表单功能...

    因为工作原因,需要将xls文件的数据录入到网上.因为数据量太多,而且以后时不时还需要用上,Ctrl+C,Ctrl+V不是长久之计.所有写了一个小工具,用于把xls文件的数据录入到网站上. 读写xls部 ...

  7. Selenium1 Selenium2 WebDriver

    内容摘要: Selenium 1 原理 WebDriver WebDriver 组件 WebDriver 协议 Remote End 处理流程 Commands & Endpoints &am ...

  8. python selenium 模拟浏览器

    遇到的问题 (1)按钮无法点击 selenium.common.exceptions.ElementClickInterceptedException: Message: element click ...

  9. selenium源码通读·12 |webdriver/remote分析

    ·12 |webdriver/remote分析 1 源码路径 2 功能说明 3 部分功能详解 3.1 command.py 3.2 errorhandler.py 1 源码路径 selenium/we ...

  10. python网页自动填写_Windows下使用python3 + selenium实现网页自动填表功能

    因为工作原因,需要将xls文件的数据录入到网上.因为数据量太多,而且以后时不时还需要用上,Ctrl+C,Ctrl+V不是长久之计.所以萌生一个想法,写一个工具,用于把xls文件的数据录入到网站上. 笔 ...

最新文章

  1. 阿里代码规范插件 中文使用手册 FOR Eclipse
  2. 全球及中国预编程振荡器行业需求潜力分析与投资战略咨询报告2021-2027年版
  3. Spring Boot 集成测试
  4. 26.27.28.29.极区图(南丁格尔玫瑰图)、维恩图 (Venn diagram)、面状图(Area chart)、树地图
  5. WorldCat Search : PHP OCLC Web Services Library
  6. “405 – 不允许用于访问此页的 HTTP 谓词。”的解决方案
  7. js学习总结----简单的动画库封装tween.js
  8. 买二手房已经过户等待银行放款,应该没有变数了吧?
  9. robotframework安装_Robot Framework零基础入门教程
  10. 数据库备分复制到另一台机器
  11. python综合程序设计-基于树莓派的python GPIO编程-常用函数综合整理
  12. 自媒体、新媒体、融媒体的区别是什么?
  13. 同源策略——CORS和JSONP劫持漏洞
  14. java实现京东云第三方登录
  15. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,计算机与计算思维...
  16. [论文阅读] Facial Expression Recognition Using Residual Masking Network
  17. [学习标准库]stdio.h
  18. aot慈善币跑路了_慈善币AOT:用公益收割“韭菜”
  19. 【新手入门Python必看】1000+常用Python库一览
  20. Kruskal算法和并查集

热门文章

  1. 许晓斌_Maven实战(六)——Gradle,构建工具的未来?
  2. tcp的time wait为什么要等2个MSL
  3. 澳大利亚域名_澳大利亚域名.au注册要求
  4. react.js 原生文字下划线标注功能开发
  5. java实现火车票查询_java抓取12306火车余票信息
  6. java diamond 运算符_解决:Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符...
  7. Moebius for SQL Server
  8. 十四首中国现代诗巅峰之作
  9. 什么是DNS,FTP,HTTP,DHCP及用途
  10. 网络正常且开启了代理Chrome不能正常上网的解决方法