当前位置: 首页 > 知识库问答 >
问题:

Selenium ChromeDriver问题使用Python的Webdriver管理器

罗学真
2023-03-14

运行此代码时:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdrivermanager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().download_and_install())
driver.get("http://www.python.org")

这导致安装chromedriver的生产线出现以下异常:

TypeError:应为str、字节或os。类路径对象,而不是元组

注意,我知道关于这个主题已经有很多帖子了,但是由于webdrivermanager似乎已经被更新了,以前的解决方案不起作用。

还有一个简短的补充说明:我通过conda而不是pip安装了webdrivermager。但这不应该引起关注。

编辑:整个堆栈跟踪:

回溯(最后一次调用):文件“C:\Users\stefa\OneDrive-Johannes Kepler Universität Linz\Dokumente\GitHub\Shortly\src\crawler\crawler.py”,第19行,在driver=webdriver中。Chrome(ChromeDriverManager()。下载文件“C:\Users\stefa\anaconda3\envs\shortly\lib\site packages\selenium\webdriver\chrome\webdriver.py”,第73行,在init self中。服务start()文件“C:\Users\stefa\anaconda3\envs\shortly\lib\site packages\selenium\webdriver\common\service.py”,第72行,在start self中。进程=子进程。Popen(cmd,env=self.env,文件“C:\Users\stefa\anaconda3\envs\briefly\lib\subprocess.py”,第951行,在init self.\u execute_child(args,execute,preexec_fn,close_fds,文件“C:\Users\stefa\anaconda3\envs\briefly\lib\subprocess.py”,第1360行,在执行_child args=list2cmdline(args)文件“C:\Users\stefa\anaconda3\envs\lib\subprocess\subprocess.py”,第565行,在list2cmdline for arg in map(os.fsdecode,seq)中:文件“C:\Users\stefa\anaconda3\envs\shortly\lib\os.py”,第822行,在fsdecode filename=fspath(filename)#中执行文件名的类型检查。TypeError:应为str、字节或os。类路径对象,而不是元组

共有3个答案

李辉
2023-03-14
  1. 安装Python的Webdriver Manager:pip安装Webdriver Manager
  2. 导入ChromeDriverManager:从webdriver_manager导入。chrome导入ChromeDriverManager
  3. 使用webdriver:service=ChromeService(可执行文件路径=ChromeDriverManager()。install())driver=webdriver。Chrome(服务=服务)
隗瑞
2023-03-14

以下是我的解决方案:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
s = Service('chromedriver/chromedriver96.exe')
driver = webdriver.Chrome(service=s, options=options)
焦兴为
2023-03-14

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

  • 您需要从webdriver\u管理器导入ChromeDriverManager。chrome
  • 根据Python的Webdriver Manager,不支持下载和安装(),您必须使用安装()

因此,您的有效代码块将是:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("http://www.python.org")

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

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

您可以在ModuleNotFoundError中找到相关的详细讨论:即使在安装webdrivermanager之后,也没有名为“webdriver_manager”的模块错误

 类似资料:
  • 我在CentOS虚拟机中安装了RabbitMQ,该虚拟机的网络适配器被定义为Bridge。我正在尝试配置RabbitMQ管理,以便通过机器的IP地址访问WebApp。配置如下:

  • 使用指南 - 账户管理 - 常见问题 为您详细介绍百度统计的账户结构,包括账户、站点、报告间的层级关系,报告或者消费数据的账户权限问题,以及假如您拥有多个账户,需要实现多账户授权管理的操作方法。 常见问题 问题汇总一

  • 我有一个存根文件,我通过c#管理api发送到一个独立的线子实例。当我通过postman发送时,我得到了预期的响应,除了响应体总是空的,即使在我的文件中我有这个: } 我看到预期的标题a b,但正文中什么都没有。另外,如果我将其更改为纯文本: 这也没用-我做错了什么?

  • 问题内容: 我试图在使用selenium和phantomjs webdriver的linux服务器上运行python脚本;但是,我不断收到以下错误消息: 这是一个失败并生成此错误的简单测试脚本: 在路径上调用文件,返回: 有谁知道如何启动并运行该脚本?我已阅读了似乎类似的stackoverflow问题,并尝试应用建议的解决方案,例如通过npm重新安装幻像并使用sudo执行脚本,但是没有运气。如果我

  • 我想检索用户令牌。这是我的代码: 但该过程停止在以下行中: 一些想法? 非常感谢 例外情况: android.accounts.OperationCanceleException W/System.err: at android.accounts.AccountManager$AmsTask.internalGetResult(帐户管理器.java:1985) W/System.err: at a