首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Selenium Chrome Webdriver未安装

Python Selenium Chrome Webdriver未安装
EN

Stack Overflow用户
提问于 2021-03-29 21:58:37
回答 3查看 868关注 0票数 0

我正在尝试自动安装最新版本的Chrome驱动程序,然后将其用于我的脚本,但遇到了错误。有什么想法是不是出了什么问题?我的缓存有问题吗?

代码语言:javascript
复制
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)

错误:

代码语言:javascript
复制
[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,
  File "C:\Python38\lib\subprocess.py", 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
EN

回答 3

Stack Overflow用户

发布于 2021-03-30 01:39:39

您需要告诉webdriver的路径:

webdriver.chrome(executable_path=*path*,options=options)

但是driver2 = webdriver.Chrome(ChromeDriverManager().install())创建了一个新的selenium实例。

代码语言:javascript
复制
driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)

应该和你的用例一起工作--代码的第一行是不必要的。

请注意,“无头”也需要“--”在它前面。

完整代码:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2021-03-30 01:08:52

driver = webdriver.Chrome(driver2, options=options)

您将发送一个WebDriver对象作为位置参数。

https://www.selenium.dev/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.webdriver.html#module-selenium.webdriver.chrome.webdriver

WebDriver的第一个参数是可执行文件路径。

票数 0
EN

Stack Overflow用户

发布于 2021-03-30 02:50:17

试一试:

代码语言:javascript
复制
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()中,如下所示:

代码语言:javascript
复制
options = Options()
options.add_argument('--headless')
options.add_argument('--window-size=1920,1080')
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)

并最终初始化驱动程序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66855591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档