Java selenium设置chrome浏览器保持登录方法

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java selenium设置chrome浏览器保持登录方法相关的知识,希望对你有一定的参考价值。

说明

之前用selenium利用 ChromeDriver(谷歌驱动)时,每次打开网站都需要重新登录,现在通过配置用户数据,可以解决这个问题。

代码如下

 public static void start() 
        System.setProperty(webDriver, webDriverPath);
        try 
            if (Objects.isNull(driver))
                // ChromeOptions
                ChromeOptions chromeOptions = new ChromeOptions();
                // 设置后台静默模式启动浏览器
                //   chromeOptions.addArguments("--headless");
                //添加用户cookies
                chromeOptions.addArguments("--user-data-dir=C:\\\\Users\\\\liuya\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\User Data1");
                //启动浏览器
                driver = new ChromeDriver(chromeOptions);
                //登录
             //   userLogin(driver);
            
            voteUrl(driver);
         catch (Exception e) 
            e.printStackTrace();
         finally 
            if (Objects.nonNull(driver)) 
                //  driver.close();
            
        

    

说明:

添加保持登录的数据路径:安装目录一般在C:\\Users\\用户\\AppData\\Local\\Google\\Chrome\\User Data 文件夹下


  chromeOptions.addArguments("--user-data-dir=C:\\\\Users\\\\liuya\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\User Data1");

由于电脑要是打开google浏览器后再启动ChromeDriver ,会报 用户数据文件已经被使用的错误。

解决方案是将Chrome用户数据文件拷贝出来一份重命名,代码中引用拷贝出来的用户数据文件。

常用 ChromeOptions 配置参数说明

–user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。

    -–user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
  -–disk-cache-dir=”[PATH]“ 指定缓存Cache路径
  -–disk-cache-size= 指定Cache大小,单位Byte
  -–first run 重置到初始状态,第一次运行
  -–incognito 隐身模式启动
  -–disable-javascript 禁用Javascript
  --omnibox-popup-count="num" 将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
  --user-agent="xxxxxxxx" 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
  --disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
  --disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
  --disable-java 禁用java
  --start-maximized 启动就最大化
  --no-sandbox 取消沙盒模式
  --single-process 单进程运行
  --process-per-tab 每个标签使用单独进程
  --process-per-site 每个站点使用单独进程
  --in-process-plugins 插件不启用单独进程
  --disable-popup-blocking 禁用弹出拦截
  --disable-plugins 禁用插件
  --disable-images 禁用图像
  --incognito 启动进入隐身模式
  --enable-udd-profiles 启用账户切换菜单
  --proxy-pac-url 使用pac代理 [via 1/2]
  --lang=zh-CN 设置语言为简体中文
  --disk-cache-dir 自定义缓存目录
  --disk-cache-size 自定义缓存最大值(单位byte)
  --media-cache-size 自定义多媒体缓存最大值(单位byte)
  --bookmark-menu 在工具 栏增加一个书签按钮

以上是关于Java selenium设置chrome浏览器保持登录方法的主要内容,如果未能解决你的问题,请参考以下文章

为啥selenium2library 的mouse over在chrome中一闪而过

python selenium设置浏览器参数

Selenium+Java+Chrome环境搭建

selenium+java启动Chrome

Selenium用法详解Options选项JAVA爬虫

Selenium Headless Chrome 和语言设置