当我使用添加的 Chrome 扩展 .crx 启动 Selenium 测试时,浏览器将打开并显示已安装的扩展。分机 ID 正确。但是,我总是收到“找不到本机消息主机”。
OS: Ubuntu 22.04.4 LTS
Google Chrome (for testing) and chromedriver: 124.0
Selenium: 4.22.0
ChromeOptions cOpt = new ChromeOptions();
cOpt.setBinary("/path/to/google-chrome-for-testing");
File extension = new File("/path/to/extension.crx");
cOpt.addExtensions(Arrays.asList(extension));
return new ChromeDriver(cOpt);
Native Messaging 主机文件位于
~/.config/google-chrome-for-testing/NativeMessagingHosts
.json 文件中的名称和 id 正确
对我来说,看起来像以 selenium 启动的浏览器正在寻找 NativeMessagingHosts 文件的另一个位置。
因此,有帮助的是将 user-data-dir 设置为 google-chrome-for-testing 目录
cOpt.addArguments("--user-data-dir=/path/to/home/user/.config/google-chrome-for-testing")
因此每次都使用相同的配置文件。