我使用以下命令安装了selenium网络驱动程序:
$ npm i selenium-webdriver
然后,我创建了目录D:WebDriverbin
(并将文件geckodriver.exe
和operadriver.exe
添加到该目录中(,并将其添加到系统的PATH变量中。
成功添加了包含两个驱动程序的目录的PATH,如下所示:
$ printenv PATH
/mnt/d/WebDriver/bin/
$ ls "/mnt/d/WebDriver/bin/"
geckodriver.exe operadriver.exe
我还可以通过cmd.exe运行geckodriver(同样适用于operadriver(:
C:Usersuser>geckodriver
1621873805268 geckodriver INFO Listening on 127.0.0.1:4444
当我尝试通过运行一个示例文件(google_search(时
/mnt/d/proj/node_modules/selenium-webdriver/example $ node google_search.js
我收到以下堆叠竞赛:
Error: The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/ and ensure it can be found on your PATH.
在设置使用opera驱动程序的示例时,也找不到operadriver。
值得一提的是,我使用了Windows Subsystem for Linux(WSL(,并在该子系统的终端中运行了命令(node、printenv和npm(。路径变量是在Windows系统上设置的,所需的驱动程序仅安装在Windows系统中。我可以通过WSL终端访问windows系统上安装的文件,但selenium仍然找不到特定的驱动程序。
当我在Windows系统上从selenium webdriver运行上面提到的测试文件(google_search.js(时,它确实找到了web驱动程序,并按预期工作。我仍然不明白为什么在WSL中找不到司机。
我使用以下写得很好的文章解决了这个问题:https://qxf2.com/blog/setup-linux-testing-environment-on-windows-using-wsl/.通过创建指向驱动程序和可执行web驱动程序的符号链接,可以找到驱动程序和web浏览器。不过,就目前而言,我确实认为在cmd.exe中运行测试更容易,因为它不需要这些额外的步骤。