我正在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
,所以我很有信心这将适用于您。