重写selenium 的 click()操作,使得脚本更稳定
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()操作,使得脚本更稳定相关推荐
- 【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本
UI 自动化录制:Selenium IDE 通过 Selenium IDE 录制并重播功能,可以快速创建UI 自动化测试用例. 可以直接在界面中点击执行. 也支持在命令行运行测试脚本: $ selen ...
- Selenium经典API操作
Selenium经典API操作 三种等待方式 1.强制等待--sleep(等待时间) time库中的sleep()函数 不管怎么样,让等几秒就等几秒 真正测试的时候不需要死等,只要页面刷新出元素了就可 ...
- Selenium定位元素操作实例详解
Selenium定位元素操作示例 本文实例讲述了Selenium定位元素操作.分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器 ...
- python写web自动化_使用Python+selenium实现第一个自动化测试脚本
原标题:使用Python+selenium实现第一个自动化测试脚本 最近在学web自动化,记录一下学习过程. 此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求. 环境 ...
- selenium之鼠标操作详解
前言 人类频繁的用手操作鼠标和键盘,为了解决这个问题,selenium工具为我们提供了一个类来处理这些事件- Actionchains ,该类可以完成鼠标移动,鼠标点击事件.键盘输入.内容菜单交互等交 ...
- Selenium教程(4)操作选择框
目录 Selenium教程(1)选择和查找基本元素 Selenium教程(2)CSS元素操作 Selenium教程(3)IFrame切换/窗口切换 Selenium教程(4)操作选择框 1.选择框操作 ...
- 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)
已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...
- 文件操作示例脚本 tcl
linux 下,经常会对用到文件操作,下面是一个用 tcl 写的文件操作示例脚本: 其中 set f01 [open "fix.tcl" w] 命令表示 打开或者新建一个文件&qu ...
- wincc按钮控制的vb脚本_VB操作wincc脚本心得.docx
VB操作wincc脚本心得 Vbs 操作wincc画面脚本总结 一: 不使用变量单纯的操作界面 1.操作某个画面中控件的属性 如 Home1.Pdl(总窗体) 下的 画面窗口2(画面窗口) Sub O ...
最新文章
- c#中的模态对话框和非模态对话框
- 第二个mysql怎么装_Linux下安装两个MySQL的方法
- 工作流实战_24_flowable 全局监听
- 懒人图库-JS“焦点图”代码 漂亮的图片变化效果
- 虚方法和重写方法的继承特性
- 库ppt演示 python_用Python实现PPT转化图片
- apk系统签名和发布软件签名的理解
- 破解Charles抓包工具
- newsgroup_txt
- 如何下载b站视频到本地
- 【机器学习】10:朴素贝叶斯做文本分类
- python flask 读取地址栏参数
- C++实验5 游戏玩家类Player、两个道具类Helm和Armor
- typescript将ES5转ES6
- 热门移动端H5开源前端开发框架搜集整理
- 在线考试系统(4)——学生端主页设计
- 计划经济和市场经济·《厚黑学全书》
- 【2022年高教杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(四)
- 北京为何不能取消限购 业内:需闯四大关
- 2001年,中国加入WTO