selenium-webdriver:在当前PATH上找不到geckodriver可执行文件



我使用以下命令安装了selenium网络驱动程序:

$ npm i selenium-webdriver

然后,我创建了目录D:WebDriverbin(并将文件geckodriver.exeoperadriver.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中运行测试更容易,因为它不需要这些额外的步骤。

最新更新