为在WSL环境中运行的rails项目配置capybara时,如何指定chrome.exe的路径



我正在Windows11上的WSL环境中开发Rails应用程序。

我使用VS代码作为编辑器,并使用WSL-Remote扩展连接到WSL文件系统,编辑我的应用程序等。

当我运行rake test:system时,我得到:

blaine@blaine_ems_dev:~/myapp$ rake test:system
rake aborted!
Webdrivers::BrowserNotFound: Failed to find Chrome binary.
/home/blaine/myapp/test/application_system_test_case.rb:7:in `<class:ApplicationSystemTestCase>'
/home/blaine/myapp/test/application_system_test_case.rb:3:in `<main>'
/home/blaine/myapp/test/system/customer_administration_stories_test.rb:1:in `<main>'
Tasks: TOP => test:system
(See full trace by running task with --trace)

整洁的是,我可以通过WSL发布以下命令打开Chrome:

/mnt/c/Program Files/Google/Chrome/Application/chrome.exe

有没有什么方法可以简单地插入我安装的Windows二进制文件的路径,并让它运行我的系统测试?

或者也许还有更好的方法?

您可以通过将Selenium::WebDriver::Chrome.path设置为Chrome二进制文件的位置来覆盖Web驱动程序尝试检测Chrome的位置,也可以设置WD_CHROME_PATH环境变量。

在WSL下,您运行的是Linux版本的Ruby,它将无法通过WebDriver与Windows Chrome可执行文件进行通信。

与这个Python/Selenium/WSL2问题类似,您需要安装Linux Chrome可执行文件。

既然你有Windows11,这应该不是问题,因为它支持通过WSLg运行GUI应用程序。我已经在Windows 10上使用xrdp和Python成功地运行了Selenium,并且我刚刚在Windows 11上使用WSLg为另一个向Ubuntu提问的问题运行了ruby2d,所以我很有信心这将适用于您。

相关内容

  • 没有找到相关文章

最新更新