python - Chromedriver 未从 PATH 打开,直接链接时或在项目文件夹中时不会打开
问题描述
我已经在一个项目上工作了一段时间。直到最近,无论出于何种原因,我都开始收到错误消息:
selenium.common.exceptions.WebDriverException:消息:“chromedriver”可执行文件需要在 PATH 中。请参阅https://sites.google.com/a/chromium.org/chromedriver/home
这很奇怪,因为我已经在 PATH 中有 chromedriver。我还在与我一直在从事的项目相同的文件夹中安装了 chromedriver。我还创建了一个名为 moo.py 的测试文件。这是非常基本的,目的是测试 chromedriver。代码如下:
from selenium.webdriver.chrome.options import Options
from time import sleep
from selenium import webdriver
options = Options()
options.binary_location = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
driver = webdriver.Chrome(executable_path=r'C:\webdrivers\chromedriver.exe', chrome_options = options)
driver.get('https://www.google.com')
print('Chrome opened')
time.sleep(5)
driver.quit()
即使运行它,它仍然给我同样的错误。我不太确定现在该怎么做,因为我已经尝试了几种我知道的方法来解决这个问题。我将不胜感激任何和所有的反馈。亲切的问候。
编辑 1:Chromedriver 正在 PATH 中积极工作。
C:>chromedriver 在端口 9515 上启动 ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634}) 只允许本地连接。有关保持 ChromeDriver 安全的建议,请参阅 https://chromedriver.chromium.org/security-considerations。ChromeDriver 已成功启动。
这就是我在 cmd 中键入 chromedriver 时的响应,其中 C:\ 作为 cd。
一些附加信息,我使用的是 Windows 10 笔记本电脑。Chromedriver 之前工作正常,然后似乎突然停止了。
from selenium.webdriver.chrome.options import Options
from time import sleep
from selenium import webdriver
# options = Options()
# options.binary_location = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
# driver = webdriver.Chrome(executable_path=r'C:\webdrivers\chromedriver.exe', chrome_options = options)
driver = webdriver.Chrome()
driver.get('https://www.google.com')
print('Chrome opened')
time.sleep(5)
driver.quit()
然后我尝试注释掉关于查找 chrome 的部分,确保我在 moo.py 所在的文件夹中拥有正确版本的 chromedriver,将代码更改为上面的代码,但仍然出现相同的错误。
之后,我使用 moo.py 从文件夹中删除了 chromedriver,暗示它只会从 PATH 获取信息,然后再次抛出相同的错误。
这是我得到的整个回溯错误。每次都是同样的错误。
C:\webdrivers>python moo.py Traceback(最近一次调用最后):文件“C:\Users\Sean\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service. py",第 72 行,开始 self.process = subprocess.Popen(cmd, env=self.env, File "C:\Users\Sean\AppData\Local\Programs\Python\Python39\lib\subprocess.py",第 829 行,在init errread, errwrite) = self._get_handles(stdin, stdout, stderr) 文件“C:\Users\Sean\AppData\Local\Programs\Python\Python39\lib\subprocess.py”,第 1279 行,在_get_handles c2pwrite = msvcrt.get_osfhandle(self._get_devnull()) 文件“C:\Users\Sean\AppData\Local\Programs\Python\Python39\lib\subprocess.py”,第 1062 行,在 _get_devnull self._devnull = os. open(os.devnull, os.O_RDWR) FileNotFoundError: [Errno 2] 没有这样的文件或目录:'无'
在处理上述异常的过程中,又出现了一个异常:
回溯(最后一次调用):文件“C:\webdrivers\moo.py”,第 22 行,在 driver = webdriver.Chrome() 文件“C:\Users\Sean\AppData\Local\Programs\Python\Python39\ lib\site-packages\selenium\webdriver\chrome\webdriver.py”,第 73 行,在init self.service.start() 文件“C:\Users\Sean\AppData\Local\Programs\Python\Python39\lib\ site-packages\selenium\webdriver\common\service.py",第 81 行,开始引发 WebDriverException(selenium.common.exceptions.WebDriverException:消息:'chromedriver' 可执行文件需要在 PATH 中。请参阅 https://sites .google.com/a/chromium.org/chromedriver/home
解决方案
添加到PATH
ChromeDriver二进制文件所在的系统。
重新启动 python 解释器或 jupyter。不需要设置选项。
还要确保您拥有当前 Chrome的正确版本(自动更新)。
它会起作用的。
我以这种方式使用 selenium python 已经有一段时间了(Windows 10)。
推荐阅读
- python - 如何从电子邮件中获取有效负载并发送未修改的,没有主标题
- android - 为什么在删除最近的应用程序后服务没有在后台运行
- vuejs2 - 状态更改时不会更新计算属性
- php - 有没有办法通过他的路由名称从控制器返回视图?
- javers - 是否可以链接不同的 javers 提交并使用深度阴影范围或任何其他方式将它们一起获取?
- c++ - C ++的初学者,我面临这个问题错误C3867
- botframework - 如何更改 WebChat 中的 SendIcon
- if-statement - 在 Arrayformula 中使用 Vlookup 公式
- sql - 会话处于非活动状态
- emacs - 如何在 Centos 7 上使用 gnutls 编译 emacs 26.2?