如何解决Python Selenium Chrome Webdriver 未安装
我正在尝试自动安装最新版本的 Chrome 驱动程序,然后将其用于我的脚本,但遇到了错误。关于这里有什么问题的任何想法?我的缓存有什么问题?
driver2 = webdriver.Chrome(ChromeDriverManager().install())
options = selenium.webdriver.ChromeOptions()
#options.add_argument('headless')
options.add_argument('window-size=1920x1080')
driver = webdriver.Chrome(driver2,options=options)
错误:
[WDM] - Looking for [chromedriver 89.0.4389.23 win32] driver in cache
[WDM] - File found in cache by path [C:\Users\xxx\.wdm\drivers\chromedriver\89.0.4389.23\win32\chromedriver.exe]
Traceback (most recent call last):
File "C:\Users\xxx\Python\Price Tracking\Real Estate\RealEstate-Scraping.py",line 60,in <module>
driver = webdriver.Chrome(driver2,options=options)
File "C:\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py",line 73,in __init__
self.service.start()
File "C:\Python38\lib\site-packages\selenium\webdriver\common\service.py",line 72,in start
self.process = subprocess.Popen(cmd,env=self.env,File "C:\Python38\lib\subprocess.py",line 854,in __init__
self._execute_child(args,executable,preexec_fn,close_fds,line 1247,in _execute_child
args = list2cmdline(args)
File "C:\Python38\lib\subprocess.py",line 549,in list2cmdline
for arg in map(os.fsdecode,seq):
File "C:\Python38\lib\os.py",line 818,in fsdecode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str,bytes or os.PathLike object,not WebDriver
解决方法
你需要告诉webdriver的路径:
webdriver.chrome(executable_path=*path*,options=options)
但是
driver2 = webdriver.Chrome(ChromeDriverManager().install())
创建一个新的 selenium 实例。
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
应该适用于您的用例 - 代码的第一行不需要。
请注意,'headless' 前面也需要'--'。
完整代码:
options = selenium.webdriver.ChromeOptions()
#options.add_argument('--headless')
#could also do options.headless = True
options.add_argument('--window-size=1920x1080')
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
driver.get('enterwebsite.ext')
#do other stuff
,
driver = webdriver.Chrome(driver2,options=options)
您正在发送一个 WebDriver 对象作为位置参数。
WebDriver 的第一个参数是可执行路径。
,试试看:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument('--headless')
options.add_argument('--window-size=1920,1080')
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
driver.get('https://google.com')
driver.quit()
当您将参数选项传递给 webdriver 时,将其设置在初始化上方并将其放入 chrome() 中,如下所示:
options = Options()
options.add_argument('--headless')
options.add_argument('--window-size=1920,options=options)
并最终初始化驱动程序