使用 Python 的 Webdriver Manager 时出现 Selenium ChromeDriver 问题

Ste*_*fan 5 python selenium selenium-chromedriver selenium-webdriver webdriver-manager

运行此代码时:

\n
from selenium import webdriver\nfrom selenium.webdriver.common.keys import Keys\nfrom webdrivermanager.chrome import ChromeDriverManager\n\ndriver = webdriver.Chrome(ChromeDriverManager().download_and_install())\ndriver.get("http://www.python.org")\n
Run Code Online (Sandbox Code Playgroud)\n

这会导致安装 chromedriver 的行出现以下异常:

\n
\n

类型错误:需要 str、bytes 或 os.PathLike 对象,而不是元组

\n
\n

请注意,我知道已经存在许多关于此主题的线程,但由于 webdrivermanager 似乎已主要更新,以前的解决方案不起作用。

\n

还有一个简短的旁注:我通过 conda 而不是 pip 安装了 webdrivermager。但这不应该令人担忧。

\n

编辑:整个堆栈跟踪:

\n
\n

回溯(最近一次调用最后一次):文件“C:\\Users\\stefa\\OneDrive -\nJohannes Kepler Universit\xc3\xa4t\nLinz\\Dokumente\\GitHub\\briefly\\src\\crawler\\crawler .py”,第 19 行,\n\ndriver = webdriver.Chrome(ChromeDriverManager().download_and_install()) 文件\n“C:\\Users\\stefa\\anaconda3\\envs\\briefly\\lib\ \site-packages\\selenium\\webdriver\\chrome\\webdriver.py",\n第 73 行,在init \nself.service.start() 文件“C:\\Users\\stefa\\anaconda3\\envs \\briefly\\lib\\site-packages\\selenium\\webdriver\\common\\service.py",\n第 72 行,在 start\nself.process = subprocess.Popen(cmd, env=self.env,文件“C:\\Users\\stefa\\anaconda3\\envs\\briefly\\lib\\subprocess.py”,第951行,\nin init \nself._execute_child(args,可执行文件,preexec_fn,close_fds,文件“ C:\\Users\\stefa\\anaconda3\\envs\\briefly\\lib\\subprocess.py", line\n1360, in _execute_child\nargs = list2cmdline(args) 文件 "C:\\Users\\stefa \\anaconda3\\envs\\briefly\\lib\\subprocess.py",第 565 行,\nin list2cmdline\nfor arg in map(os.fsdecode, seq):文件“C:\\Users\\stefa\\ anaconda3\\envs\\briefly\\lib\\os.py", line 822, in\nfsdecode\nfilename = fspath(filename) # 进行类型检查filename. 类型错误:需要 str、bytes 或 os.PathLike 对象,而不是元组

\n
\n

Deb*_*anB 5

您的代码块中有两个问题,如下所示:

  • 您需要从以下位置导入ChromeDriverManagerwebdriver_manager.chrome
  • 根据Python 的 Webdriver Manager download_and_install()不受支持,您必须使用install()

所以你的有效代码块将是:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("http://www.python.org")
Run Code Online (Sandbox Code Playgroud)

系统上,控制台输出将是:

C:\Users\Admin\Desktop\Python Programs>python webdriver-manager_ChromeDriverManager.py
[WDM] -

[WDM] - ====== WebDriver manager ======
[WDM] - Current google-chrome version is 95.0.4638
[WDM] - Get LATEST driver version for 95.0.4638
[WDM] - There is no [win32] chromedriver for browser 95.0.4638 in cache
[WDM] - Get LATEST driver version for 95.0.4638
[WDM] - Trying to download new driver from https://chromedriver.storage.googleapis.com/95.0.4638.54/chromedriver_win32.zip
[WDM] - Driver has been saved in cache [C:\Users\Admin\.wdm\drivers\chromedriver\win32\95.0.4638.54]

DevTools listening on ws://127.0.0.1:50921/devtools/browser/c26df2aa-67aa-4264-b1dc-34d6148b9174
Run Code Online (Sandbox Code Playgroud)

您可以在ModuleNotFoundError: No module named 'webdriver_manager' error Even afterInstalling webdrivermanager中找到相关的详细讨论