我将chromedriver从v.2.35升级到v.2.42。我刚刚下载了v.2.42并添加到全局路径
export PATH=$PATH:/usr/lib/chromedriver
但是当我进入chromedriver
终端时,我得到
Starting ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881) on port 9515 Only local connections are allowed.
我在文件系统中找不到该版本的驱动程序。
我的问题是如何找出这个旧chromedriver的位置。
硒测试仍然有效,但我不知道他们使用的是哪个 chromedriver 版本。pip3
和pip
不包含 chromedriver。
我想找到系统上所有chrome驱动程序的位置。
Windows 的响应:(注意:仅当可以通过路径环境变量找到 chromedriver 时,以下内容才有效(
- 命令窗口(或 IDE 终端(输入 chromedriver (返回(
- 您应该会看到如上所述的内容,"在端口 9515 上启动 ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881( 只允许本地连接。
- 不要关闭命令窗口或中断您启动的 chromedriver 进程
- 打开任务管理器并找到进程"铬驱动程序">
- 右键单击"ChromeDriver",然后选择"打开文件位置">
对于我自己来说,流氓Chromedriver文件在Ruby安装的垃圾箱中。
要找出运行chromedriver
命令时启动的铬驱动程序,请执行以下操作:
-
最后运行带有 & 符号的 chromedriver 以将其置于后台,当它开始时,第二次按 Enter 返回命令行:
$ chromedriver& [1] 84039 $ Starting ChromeDriver 2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011) on port 9515 Only local connections are allowed. <press Enter again here> $
-
上一个命令显示进程的 PID。运行该 PID
lsof
命令以查找该进程可执行文件的路径。例如,在我的情况下,PID 被84039
,所以我将运行:$ lsof -p 84039
输出将包含带有Chrome驱动程序路径的行。例如,对我来说是:
chromedri 84039 user txt REG 1,4 11917200 8691417 /usr/local/bin/chromedriver
查找计算机上所有 chromedriver 实例
你需要记住,Selenium(特别是如果从Jenkins或其他CI工具启动(是在特定用户的上下文中启动的。因此,请确保在运行以下命令时您是
- 要么在与硒相同的用户的上下文中
- 或者您是管理员/root帐户,可以访问所有用户的私人目录。
否则,您可能无法找到所有结果。然后运行find
命令。我更喜欢以根身份运行它(使用 sudo(:
sudo find / -type f -name chromedriver
输出将包含系统中所有chromedriver的位置,例如:
/usr/local/bin/chromedriver
/Users/user/Downloads/chromedriver