自动化代码中如何处理浏览器弹证书问题的总结

2019-07-29  本文已影响0人  青风飞絮

问题描述:浏览器打开去访问某一网址时,https需要接受证书验证,页面弹出证书接受框需要去接受,此时若不处理证书弹出框,浏览器就一直处于加载状态。证书弹出框上的元素无法用driver去定位操作。

解决思路 :在代码中启用多线程的方法和配合操作键盘的命令去接受证书

具体的参考代码如下:

import java.awt.*;
import java.awt.event.KeyEvent;

public class CommonUtils implements Runnable {

    //定义成员变量
    private Integer seconds = 0;

    //构造方法给成员变量赋值
    public CommonUtils(Integer seconds) {
        this.seconds = seconds;
    }

    //封装线程等待方法,以秒为单位
    public void sleep(int seconds) {
        try {
            Thread.sleep(seconds * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    //多线程实现Runnable接口,重写run方法
    @Override
    public void run() {
        //线程等待
        sleep(seconds);
        //操作键盘的类
        Robot robot = null;
        try{
            robot = new Robot();
        }catch (AWTException e){
            e.printStackTrace();
        }
        //调用keypress方法来实现按下Enter键
        robot.keyPress(KeyEvent.VK_ENTER);
        //调用keyrelease方法来实现释放Enter键
        robot.keyRelease(KeyEvent.VK_ENTER);
    }

    // 开启子线程实现接受证书的方法
    public static void pressKey(Integer seconds){
        //创建子线程
        Thread thread = new Thread(new CommonUtils(seconds));
        //将子线程设置为守护线程
        thread.setDaemon(true);
        //线程开启
        thread.start();
    }
}
上一篇下一篇

猜你喜欢

热点阅读