selenium 页面常会因为页面加载慢而出现element 不能被点击到的情况,比如加载过程中出现遮罩,导致element 可见不可点。以下方法重写click(),用隐式等待解决这个问题。

基本思路是以下这样的。

private static void click(WebElement element) throws Exception {for (int i = 100; i > 0; i--) {try {element.click();break;} catch (Exception e) {Thread.sleep(200);}}}

某位厉害的同学重写了上面的代码,加入了更加智能的判断。

protected void click(WebElement element) throws Exception {boolean start = true;int loopCount = 0;do{loopCount++;try {element.click();LoggerManager.logInfo("在尝试点击了"+loopCount+"次之后,终于点中了这个小坏蛋。");break;} catch (Exception e) {//如果是element不可点击,就等待之后重试,如果抛出别的异常,就放弃,不等了。if(e.getMessage().contains("not clickable")){Thread.sleep(200);}else{start=false;LoggerManager.logError("Click Failed: "+e.getMessage());}}}while(start);}

转载于:https://www.cnblogs.com/testertry/p/10617378.html

重写selenium 的 click()操作,使得脚本更稳定相关推荐

  1. 【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本

    UI 自动化录制:Selenium IDE 通过 Selenium IDE 录制并重播功能,可以快速创建UI 自动化测试用例. 可以直接在界面中点击执行. 也支持在命令行运行测试脚本: $ selen ...

  2. Selenium经典API操作

    Selenium经典API操作 三种等待方式 1.强制等待--sleep(等待时间) time库中的sleep()函数 不管怎么样,让等几秒就等几秒 真正测试的时候不需要死等,只要页面刷新出元素了就可 ...

  3. Selenium定位元素操作实例详解

    Selenium定位元素操作示例 本文实例讲述了Selenium定位元素操作.分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器 ...

  4. python写web自动化_使用Python+selenium实现第一个自动化测试脚本

    原标题:使用Python+selenium实现第一个自动化测试脚本 最近在学web自动化,记录一下学习过程. 此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求. 环境 ...

  5. selenium之鼠标操作详解

    前言 人类频繁的用手操作鼠标和键盘,为了解决这个问题,selenium工具为我们提供了一个类来处理这些事件- Actionchains ,该类可以完成鼠标移动,鼠标点击事件.键盘输入.内容菜单交互等交 ...

  6. Selenium教程(4)操作选择框

    目录 Selenium教程(1)选择和查找基本元素 Selenium教程(2)CSS元素操作 Selenium教程(3)IFrame切换/窗口切换 Selenium教程(4)操作选择框 1.选择框操作 ...

  7. 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)

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

  8. 文件操作示例脚本 tcl

    linux 下,经常会对用到文件操作,下面是一个用 tcl 写的文件操作示例脚本: 其中 set f01 [open "fix.tcl" w] 命令表示 打开或者新建一个文件&qu ...

  9. wincc按钮控制的vb脚本_VB操作wincc脚本心得.docx

    VB操作wincc脚本心得 Vbs 操作wincc画面脚本总结 一: 不使用变量单纯的操作界面 1.操作某个画面中控件的属性 如 Home1.Pdl(总窗体) 下的 画面窗口2(画面窗口) Sub O ...

最新文章

  1. c#中的模态对话框和非模态对话框
  2. 第二个mysql怎么装_Linux下安装两个MySQL的方法
  3. 工作流实战_24_flowable 全局监听
  4. 懒人图库-JS“焦点图”代码 漂亮的图片变化效果
  5. 虚方法和重写方法的继承特性
  6. 库ppt演示 python_用Python实现PPT转化图片
  7. apk系统签名和发布软件签名的理解
  8. 破解Charles抓包工具
  9. newsgroup_txt
  10. 如何下载b站视频到本地
  11. 【机器学习】10:朴素贝叶斯做文本分类
  12. python flask 读取地址栏参数
  13. C++实验5 游戏玩家类Player、两个道具类Helm和Armor
  14. typescript将ES5转ES6
  15. 热门移动端H5开源前端开发框架搜集整理
  16. 在线考试系统(4)——学生端主页设计
  17. 计划经济和市场经济·《厚黑学全书》
  18. 【2022年高教杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(四)
  19. 北京为何不能取消限购 业内:需闯四大关
  20. 2001年,中国加入WTO

热门文章

  1. Mysql无法创建外键的原因
  2. 为DevOps正确组合IT、文化和实践
  3. IOS性能调优系列:使用Time Profiler发现性能瓶颈
  4. Linux常用命令之rm
  5. [算法][递归] 棋盘覆盖
  6. Android: how to resolve Application’s parameter NullPointerException
  7. How to stop worrying & start living
  8. nopi 的使用记录
  9. Java--消除重复数字后的最大值
  10. 博客园写代码发家的大牛