【selenium】自动化使用 chrome 的 user-data-dir

这篇具有很好参考价值的文章主要介绍了【selenium】自动化使用 chrome 的 user-data-dir。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

jwensh@2023.12.18

背景

用户数据目录包含配置文件数据,例如历史记录、书签和 cookie,以及其他每次安装的本地状态。

每个配置文件都是用户数据目录中的一个子目录(通常为Default)。

我们在使用 selenium 进行 chrome 操作自动化的时候,有时候会用到 extends 插件,也就是

ChromeOptions options = new ChromeOptions();
options.addArguments(String.format("--user-data-dir=%s", userDataDir));

我们需要了解的内容

当前位置

要确定正在运行的 Chrome 实例的用户数据目录:

  1. 浏览器输入 chrome://version
  2. 查找 Profile Path 字段。这给出了配置文件目录的路径。
  3. 用户数据目录是配置文件目录的父目录。

示例(Windows):

  • [配置文件路径] C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default
  • [用户数据目录] C:\Users\Alice\AppData\Local\Google\Chrome\User Data

默认位置

用户数据目录的默认位置由 chrome::GetDefaultUserDataDirectory 计算得出。

一般来说,它的变化取决于

  • 操作系统平台,
  • 品牌推广(Chrome 与 Chromium,基于 is_chrome_branded GN 参数),以及
  • 发布渠道(稳定版/测试版/开发版/金丝雀版)。

windows

默认位置位于本地应用程序数据文件夹中:

  • [Chrome] %LOCALAPPDATA%\Google\Chrome\User Data
  • [Chrome Canary] %LOCALAPPDATA%\Google\Chrome SxS\User Data
  • [Chromium] %LOCALAPPDATA%\Chromium\User Data

Mac OS X

默认位置位于 Application Support 文件夹中:

  • [Chrome] ~/Library/Application Support/Google/Chrome
  • [Chrome Canary] ~/Library/Application Support/Google/Chrome Canary
  • [Chromium] ~/Library/Application Support/Chromium

Linux

默认位置位于 ~/.config

  • [Chrome Stable] ~/.config/google-chrome
  • [Chrome Beta] ~/.config/google-chrome-beta
  • [Chrome Dev] ~/.config/google-chrome-unstable
  • [Chromium] ~/.config/chromium

(beta 和 dev 通道后缀由 $CHROME_VERSION_EXTRA 确定,由 启动包装器脚本传递.)

默认位置的 ~/.config 部分可以被 $CHROME_CONFIG_HOME(自 M61 起)或 $XDG_CONFIG_HOME 覆盖。

请注意,$XDG_CONFIG_HOME 会影响所有符合 XDG 基本目录规范 的应用程序,而 $CHROME_CONFIG_HOME 特定于 Chrome 和 Chromium。

Chrome操作系统

默认位置是:/home/chronos

Android

默认位置来自 Context.getDir 并且特定于应用。

例子:/data/user/0/com.android.chrome/app_chrome

iOS系统

默认位置位于应用程序沙箱中的应用程序支持目录内。

  • [Chrome] Library/Application Support/Google/Chrome
  • [Chromium] Library/Application Support/Chromium

覆盖用户数据目录

命令行

在大多数平台上,可以通过将 --user-data-dir 命令行标志传递给 Chrome 二进制文件来覆盖用户数据目录。

覆盖发生在 chrome/app/chrome_main_delegate.cc 中。未使用该文件构建的平台可能未实现覆盖。 iOS 不支持通过命令行覆盖用户数据目录。

例子:

  • [Windows] chrome.exe --user-data-dir=c:\foo
  • [Linux] google-chrome --user-data-dir=/path/to/foo

环境(Linux)

在 Linux 上,还可以使用 $CHROME_USER_DATA_DIR 环境变量覆盖用户数据目录。

如果两者都存在,--user-data-dir 标志优先。

编写 AppleScript 包装器 (Mac OS X)

在 Mac OS X 上,您可以创建一个使用自定义运行 Chrome 的应用程序 --user-data-dir

  1. 打开应用程序>公用事业>脚本编辑器。
  2. 进入:
set chrome to "\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\""
set userdatadir to "\"$HOME/Library/Application Support/Google/Chrome Alt\""
do shell script chrome & " --user-data-dir=" & userdatadir & " > /dev/null 2>&1 &"
  1. 根据需要修改您的安装路径、Chrome 与 Chromium 以及所需的用户数据目录。
  2. 将脚本保存在应用程序目录中,文件格式为“Application”。
  3. 关闭脚本编辑器,找到新创建的应用程序,然后运行它。这将打开一个指向您的新配置文件的 Chrome 实例。

如果需要,您可以为该应用程序指定与 Chrome 相同的图标:

  1. 选择 Google Chrome 应用程序并选择“文件”>“获取信息。
  2. 选择信息对话框左上角的图标。您将在图标周围看到蓝色突出显示。
  3. 按 ⌘C 复制图标。
  4. 打开新应用程序的信息对话框,然后选择左上角的图标。
  5. 按 ⌘V 粘贴复制的图标。

用户缓存目录

在 Windows 和 ChromeOS 上,用户缓存目录与配置文件目录相同。 (配置文件目录位于用户数据目录内。)

在 Mac OS X 和 iOS 上,用户缓存目录源自配置文件目录,如下所示:

  1. 如果 Library/Application Support 是配置文件目录的祖先,则用户缓存目录为 Library/Caches 加上 Application Support 到配置文件目录。
  2. 否则,用户缓存目录与配置文件目录相同。

Mac OS X :

  • [用户数据目录] ~/Library/Application Support/Google/Chrome
  • [个人资料目录] ~/Library/Application Support/Google/Chrome/Default
  • [用户缓存目录] ~/Library/Caches/Google/Chrome/Default

在 Linux 上,用户缓存目录源自配置文件目录,如下所示:

  1. 确定系统配置目录。这是 ~/.config,除非被 $XDG_CONFIG_HOME 覆盖。 (此步骤忽略 $CHROME_CONFIG_HOME。)
  2. 确定系统缓存目录。这是 ~/.cache,除非被 $XDG_CACHE_HOME 覆盖。
  3. 如果系统配置目录是配置文件目录的祖先,则用户缓存目录是系统缓存目录加上从系统配置目录到配置文件目录的相对路径。
  4. 否则,用户缓存目录与配置文件目录相同。

Linux:

[用户数据目录] ~/.config/google-chrome
[个人资料目录] ~/.config/google-chrome/Default
[用户缓存目录] ~/.cache/google-chrome/Default

在 Android 上,用户缓存目录来自 Context.getCacheDir。

https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md文章来源地址https://www.toymoban.com/news/detail-765629.html

到了这里,关于【selenium】自动化使用 chrome 的 user-data-dir的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium自动化chrome

    chrome_options = webdriver.ChromeOptions() - 创建 Chrome 浏览器的选项对象。 chrome_options.binary_location = r\\\"C:Program FilesGoogleChromeApplicationchrome.exe\\\" - 指定 Chrome 浏览器的二进制文件路径。 chrome_options.add_argument(\\\'--disable-gpu\\\') - 禁用 GPU 加速,可以提高脚本在浏览器中的稳定性和性能。 chrom

    2024年02月09日
    浏览(36)
  • selenium自动化,更新到最新的chrome驱动

    很久没有做自动化了,最近想要熟悉下,发现之前的chrome驱动器与现在的chrome浏览器版本不匹配了导致报错 提示如下: raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 93 Curre

    2024年02月05日
    浏览(57)
  • Python selenium自动化操作Chrome浏览器

    ​ ​ 活动地址:CSDN21天学习挑战赛 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持目前比较主流的浏览器。它也实现了诸多自动化功能,比如软件自动化测试,检测软件与浏览器兼容性,自动录制、生成不同语言

    2024年02月02日
    浏览(54)
  • Python+Selenium3+Chrome自动化测试环境搭建

    写在最前面,因为各种原因,搭建该环境方法多种多样。在本教程中,展示环境搭建的详细步骤。在不同软硬件环境下安装报错,可找出原因,百度排错。 本博客的具体操作视频请移步B站: https://www.bilibili.com/video/BV1oe4y1w7yr/?spm_id_from=333.999.list.card_archive.clickvd_source=585bb8c205

    2024年02月02日
    浏览(56)
  • UI自动化环境的搭建(python+pycharm+selenium+chrome)

    最近在做一些UI自动化的项目,为此从环境搭建来从0到1,希望能够帮助到你,同时也是自我的梳理。将按照如下进行开展: 1、python的下载、安装,python环境变量的配置。 2、pycharm开发工具的下载安装。 3、selenium的安装。 4、chrome的选择。 一、python的下载。 1、去python官网:

    2024年02月13日
    浏览(46)
  • selenium 使用chrome_driver自动化操作Google浏览器,调试的时候没有提示,但是编译后就提示一些错误的解决方法

    使用chrome_driver自动化操作Google浏览器,调试的时候没有提示,但是编译后就提示一些错误的解决方法: 1、提示  ERROR:ssl_client_socket_impl.cc(975)] handshake failed; returned -1, SSL error code 1, net_error -101: 添加: 2、提示  USB: usb_device_win.cc:95 Failed to read descriptors from \\\\?usb#vid_0e8dpid_201d

    2024年02月04日
    浏览(50)
  • java + Selenium 实现自动化测试,模拟人手点击操作 chrome 浏览器

    引入 maven 依赖: 安装 chromeDriver:略 SeleniumUtils.java: ChromeDriverUtils.java: 使用示例:

    2024年02月11日
    浏览(54)
  • 新手教程 | Python自动化测试Selenium+chrome连接HTTP代理(账密+白名单)

    Selenium 有很多功能, 但其核心是 web 浏览器自动化的一个工具集,它允许用户模拟终端用户执行的常见活动;将文本输入到字段中,选择下拉值和复选框,并单击文档中的链接。 它还提供许多其他控件,比如鼠标移动、任意 JavaScript 执行等等。 虽然 Selenium 主要用于网

    2024年02月06日
    浏览(53)
  • 谷歌chrome浏览器所有历史版本下载及selenium自动化控制插件资源分享

    使用python + selenium做网页自动化开发的小伙伴经常需要用到google chrome浏览器以及chromedriver插件。     谷歌浏览器所有历史版本下载链接: chrome历史版本,点击下载 chromedriver插件下载地址: 下载链接1:点击下载 下载链接2:点击下载 chromedriver插件与浏览器版本有对应关系,

    2024年02月14日
    浏览(53)
  • Selenium自动化chrome驱动版本匹配但是调用浏览器失败:Only local connections are allowed. 问题解决

    第一次发现这种情况,驱动版本完全对的上,但是调用 chrome 就提示 Only local connections are allowed. 然后浏览器调用失败报错。 解决方法: 调用 chrome 驱动的时候加个参数 --whitelisted-ips=\\\"\\\" ,值为空就是把所有调入来源都加入白名单。 ips 的全称是 intrusion prevention system ,解释为入

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包