jwensh@2023.12.18
用户数据目录包含配置文件数据,例如历史记录、书签和 cookie,以及其他每次安装的本地状态。
每个配置文件都是用户数据目录中的一个子目录(通常为Default)。
我们在使用 selenium 进行 chrome 操作自动化的时候,有时候会用到 extends 插件,也就是
ChromeOptions options = new ChromeOptions();
options.addArguments(String.format("--user-data-dir=%s", userDataDir));
我们需要了解的内容
要确定正在运行的 Chrome 实例的用户数据目录:
chrome://version
Profile Path
字段。这给出了配置文件目录的路径。示例(Windows):
C:\Users\Alice\AppData\Local\Google\Chrome\User Data\Default
C:\Users\Alice\AppData\Local\Google\Chrome\User Data
用户数据目录的默认位置由 chrome::GetDefaultUserDataDirectory 计算得出。
一般来说,它的变化取决于
默认位置位于本地应用程序数据文件夹中:
%LOCALAPPDATA%\Google\Chrome\User Data
%LOCALAPPDATA%\Google\Chrome SxS\User Data
%LOCALAPPDATA%\Chromium\User Data
默认位置位于 Application Support
文件夹中:
默认位置位于 ~/.config
:
(beta 和 dev 通道后缀由 $CHROME_VERSION_EXTRA
确定,由 启动包装器脚本传递.)
默认位置的 ~/.config
部分可以被 $CHROME_CONFIG_HOME
(自 M61 起)或 $XDG_CONFIG_HOME
覆盖。
请注意,$XDG_CONFIG_HOME
会影响所有符合 XDG 基本目录规范 的应用程序,而 $CHROME_CONFIG_HOME 特定于 Chrome 和 Chromium。
默认位置是:/home/chronos
默认位置来自 Context.getDir 并且特定于应用。
例子:/data/user/0/com.android.chrome/app_chrome
默认位置位于应用程序沙箱中的应用程序支持目录内。
在大多数平台上,可以通过将 --user-data-dir
命令行标志传递给 Chrome 二进制文件来覆盖用户数据目录。
覆盖发生在 chrome/app/chrome_main_delegate.cc
中。未使用该文件构建的平台可能未实现覆盖。 iOS 不支持通过命令行覆盖用户数据目录。
例子:
在 Linux 上,还可以使用 $CHROME_USER_DATA_DIR
环境变量覆盖用户数据目录。
如果两者都存在,--user-data-dir
标志优先。
在 Mac OS X 上,您可以创建一个使用自定义运行 Chrome 的应用程序 --user-data-dir
:
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 &"
如果需要,您可以为该应用程序指定与 Chrome 相同的图标:
在 Windows 和 ChromeOS 上,用户缓存目录与配置文件目录相同。 (配置文件目录位于用户数据目录内。)
Library/Application Support
是配置文件目录的祖先,则用户缓存目录为 Library/Caches
加上 Application Support
到配置文件目录。~/Library/Application Support/Google/Chrome
~/Library/Application Support/Google/Chrome/Default
~/Library/Caches/Google/Chrome/Default
[用户数据目录] ~/.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