运行此代码时:
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。类路径对象,而不是元组
以下是我的解决方案:
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)
代码块中有两个问题,如下所示:
webdriver\u管理器导入ChromeDriverManager。chrome
下载和安装()
,您必须使用安装()
因此,您的有效代码块将是:
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。配置如下:
使用指南 - 账户管理 - 常见问题 为您详细介绍百度统计的账户结构,包括账户、站点、报告间的层级关系,报告或者消费数据的账户权限问题,以及假如您拥有多个账户,需要实现多账户授权管理的操作方法。 常见问题 问题汇总一
问题内容: 我试图在使用selenium和phantomjs webdriver的linux服务器上运行python脚本;但是,我不断收到以下错误消息: 这是一个失败并生成此错误的简单测试脚本: 在路径上调用文件,返回: 有谁知道如何启动并运行该脚本?我已阅读了似乎类似的stackoverflow问题,并尝试应用建议的解决方案,例如通过npm重新安装幻像并使用sudo执行脚本,但是没有运气。如果我
我有一个存根文件,我通过c#管理api发送到一个独立的线子实例。当我通过postman发送时,我得到了预期的响应,除了响应体总是空的,即使在我的文件中我有这个: } 我看到预期的标题a b,但正文中什么都没有。另外,如果我将其更改为纯文本: 这也没用-我做错了什么?
我想检索用户令牌。这是我的代码: 但该过程停止在以下行中: 一些想法? 非常感谢 例外情况: android.accounts.OperationCanceleException W/System.err: at android.accounts.AccountManager$AmsTask.internalGetResult(帐户管理器.java:1985) W/System.err: at a