google-chrome - Karma:使用来自 WSL 的 Windows 的 Chrome
问题描述
我正在尝试使用 Windows 版本的 Google Chrome 从 WSL 启动业力。
在 karma.conf.js 中,我只使用 Chrome 浏览器:
[...],
browsers: ['Chrome'],
[...]
我像这样导出 CHROME_BIN 环境变量:
export CHROME_BIN='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
Karma 成功找到 Google Chrome,并在启动 Karma 时在正确的 URL 处打开一个新选项卡。但是,我收到此错误:
Google chrome can't read and write to its data directory /tmp/karma-XXXX
我尝试以管理员身份启动 chrome 并将缓存文件夹更改为我项目的根目录,但它不起作用。
我认为 Karma 提供给 Chrome 的路径格式存在问题(WSL 路径与 Windows 路径)。
所以我创建了一个自定义业力启动器,指定 chromeDataDir:
browsers: ['WindowsChrome'],
customLaunchers: {
WindowsChrome: {
base: 'Chrome',
chromeDataDir: 'D:\\'
}
}
通过这样做,我没有以前的错误,启动了一个新的 Chrome 实例,但 Chrome 似乎无法解析 URL,并且业力超时。此外,在我的项目中创建了很多 Chrome 文件夹。
是否有人已经使用 Chrome 从 WSL 进行业力工作,或者对正在发生的事情有任何线索?
解决方案
我发现如果你在 Windows 下创建一个 C:\tmp\karma 文件夹,这个错误就会消失,Chrome 会找到这个文件夹并将其用于临时文件。
您还可以通过设置 TEMP 环境变量来更改 Chrome 用于其数据的临时文件夹,如下所示:
export TEMP='/path/to/your/folder'
重要的是 C:\path\to\your\folder 在 Windows 下必须存在。
推荐阅读
- asp.net-core - 我应该如何在 ASP.NET Core Web Api 项目中调用我的 DAL
- xamarin.forms - 无法分配属性“FontFamily”:属性不存在
- bash - 使 rustc、cargo、rustup、rustdoc 命令在 Windows 子系统 for Linux 中无需 sudo 即可工作
- multithreading - 白屏出现在 javaFx 应用程序中并且卡住了
- laravel - 多个数据库的 Laravel 多态关系
- apache-spark - PySpark:使用 binaryFiles() 函数读取二进制文件时进行分区
- android - 嵌套的recyclerview:在组之间滚动时卡住
- vba - 创建基于条件的循环,复制行的一部分并使用标题标题
- algorithm - 以随机算法均匀生成具有 n 个顶点、m 个边的图
- python - Trailing chars in Pandas Series - How to make the sign suffix a prefix?