java+selenium(无头模式)+Cookie跳过二维码、验证码登录

java+selenium(无头模式)+Cookie跳过二维码、验证码登录

学习记录

1.介绍

           1):selenium无头模式可以在不打开游览器的情况下,进行数据测试及数据爬取;
           2):cookie登录能跳过二维码、验证码的阻拦实现登录

2.注意

           1):查看自己谷歌版本并下载对应chromedriver插件:http://npm.taobao.org/mirrors/chromedriver/
           2):我的插件存放路径
java+selenium(无头模式)+Cookie跳过二维码、验证码登录_第1张图片
           3):如想使用无头模式尽量使用最新的pom,因为低版本的pom不支持无头模式,我的pom如下:


        
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-javaartifactId>
            <version>3.8.1version>
        dependency>
        
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-serverartifactId>
            <version>3.8.1version>
        dependency>
        
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-chrome-driverartifactId>
            <version>3.8.1version>
        dependency>
        
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-chrome-driverartifactId>
            <version>3.8.1version>
        dependency>
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-htmlunit-driverartifactId>
            <version>2.52.0version>
        dependency>
        <dependency>
            <groupId>com.google.code.gsongroupId>
            <artifactId>gsonartifactId>
            <version>2.8.5version>
        dependency>

代码如下:

 @Test
    public void main() throws Exception {
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
        /**
         * 启动无头模式
         */
        //初始化一个谷歌浏览器实例,实例名称叫driver
        ChromeOptions chromeOptions = new ChromeOptions();
        //设置 chrome 的无头模式
        chromeOptions.setHeadless(Boolean.TRUE);
        //启动一个 chrome 实例
        WebDriver driver = new ChromeDriver(chromeOptions);
        //初始化一个谷歌浏览器实例,实例名称叫driver
        // get()打开一个站点,也就是打开登录页面
    	driver.get("http://xxx");
        logger.info("=========getCookies:" + driver.manage().getCookies() + "\n");//获取cookie
        Thread.sleep(500);
        /**
         * Cookie注入,每个网址的cookieId可能都不同需自行甄别,或者可以下载抓包工具找到cookieid,软件名:Fiddler
         */
        Cookie c1 = new Cookie("PHPSESSID", "xxx");
        Cookie c2 = new Cookie("ADMIN", "xxx");
        driver.manage().addCookie(c1);
        driver.manage().addCookie(c2);
        driver.navigate().refresh();
        //cookie注入后请求登录成功后需要展示的页面就自动进去了
        driver.get("http://xxxx");
    }

你可能感兴趣的:(java+selenium(无头模式)+Cookie跳过二维码、验证码登录)