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

本文介绍了如何使用Java和Selenium的无头模式,通过设置Cookie来绕过二维码和验证码,实现自动登录的过程。重点提到了需要匹配正确的Chrome版本与chromedriver,并给出了相关配置和POM版本的建议。

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

学习记录

1.介绍

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

2.注意

           1):查看自己谷歌版本并下载对应chromedriver插件:http://npm.taobao.org/mirrors/chromedriver/
           2):我的插件存放路径
在这里插入图片描述
           3):如想使用无头模式尽量使用最新的pom,因为低版本的pom不支持无头模式,我的pom如下:

<!--selenium依赖文件-->
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.8.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.8.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.8.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-htmlunit-driver</artifactId>
            <version>2.52.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </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");
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值