【问题标题】:selenium-webdriver: The geckodriver executable could not be found on the current PATHselenium-webdriver:在当前 PATH 上找不到 geckodriver 可执行文件
【发布时间】:2021-08-12 23:31:30
【问题描述】:

我使用以下命令安装了 selenium webdriver:

$ npm i selenium-webdriver

然后,我创建了目录 D:\WebDriver\bin(并将文件 geckodriver.exeoperadriver.exe 添加到该目录)并将其添加到系统的 PATH 变量中。

成功添加了包含两个驱动程序的目录的路径,如下所示:

$ printenv PATH
/mnt/d/WebDriver/bin/
$ ls "/mnt/d/WebDriver/bin/"
geckodriver.exe  operadriver.exe

我还可以通过 cmd.exe 运行 geckodriver(同样适用于 operadriver):

C:\Users\user>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。

值得一提的是,我使用了适用于 Linux 的 Windows 子系统 (WSL),并在该子系统的终端中运行了命令(node、printenv 和 npm)。路径变量是在 Windows 系统上设置的,所需的驱动程序只安装在 Windows 系统上。我可以通过 WSL 终端访问我的 windows 系统上安装的文件,但是 selenium 仍然找不到特定的驱动程序。

当我在 Windows 系统上从 selenium-webdriver 运行上述测试文件 (google_search.js) 时,它确实找到了 Web 驱动程序并按预期工作。我仍然无法弄清楚为什么在 WSL 中找不到驱动程序。

【问题讨论】:

  • 好吧,如果您使用的是集成终端,我会重新启动指挥官和 VsCode。希望对您有所帮助
  • 我已经重启了VSCode,关闭了所有打开的终端,甚至重启了我的电脑。我有一个 npm 脚本“test”,它使用 mocha 运行我的测试。当我在我的 Windows 机器上使用 cmd.exe 并运行“npm run test”时,它确实有效。但是,当我在 WSL 机器上运行“npm run test”时,它不起作用。我认为这是因为找不到路径。在我的 WSL 上,没有安装 Web 驱动程序的 Web 浏览器或二进制文件。我只是不知道为什么找不到路径。

标签: node.js selenium-webdriver path webdriver


【解决方案1】:

我能够使用以下写得很好的文章解决问题:https://qxf2.com/blog/setup-linux-testing-environment-on-windows-using-wsl/。通过创建指向驱动程序和 Web 驱动程序可执行文件的符号链接,可以找到驱动程序和 Web 浏览器。目前,我确实认为在 cmd.exe 中运行测试更容易,因为它不需要这些额外的步骤。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 2017-08-03
    • 1970-01-01
    • 2018-03-25
    • 2018-07-11
    • 2017-05-17
    • 2017-03-05
    相关资源
    最近更新 更多