【发布时间】:2021-08-12 23:31:30
【问题描述】:
我使用以下命令安装了 selenium webdriver:
$ npm i selenium-webdriver
然后,我创建了目录 D:\WebDriver\bin(并将文件 geckodriver.exe 和 operadriver.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