zoukankan      html  css  js  c++  java
  • 重写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);
            
        }
  • 相关阅读:
    函数
    函数知识点 --- 函数的认知,组成,格式 --------------- #10
    打包app
    vue ie
    css position
    awesome vue
    20110636乐建18588529432
    vue2.0-基于elementui换肤[自定义主题]
    三目运算符,多条件判断
    微信二次开发准备工作
  • 原文地址:https://www.cnblogs.com/testertry/p/10617378.html
Copyright © 2011-2022 走看看