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

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

作者: 青风飞絮 | 来源:发表于2019-07-29 14:40 被阅读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();
        }
    }
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/sosbrctx.html