找回密码
 会员注册
查看: 19|回复: 0

Python解决“TypeError__init__()gotanunexpectedkeywordargument‘XXX‘”的方法

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-9 20:09:02 | 显示全部楼层 |阅读模式
我一直使用selenium,通常构建dirver的时候都会写:driver=webdriver.Chrome(options=option,executable_path=chromedriver_path)executable_path是用于指定ChromeDriver的可执行文件路径。但是今天执行的时候,却忽然报出关于executable_path的问题:那么,我们在遇到“TypeError:init()gotanunexpectedkeywordargument‘XXX’”这类型问题的时候,应该怎么做呢?思路:我打开底层Chrome的包,【ctrl】+点击黄色横线的位置就能打开了。打开Chrome的包,我发现搜索目标参数【executable_path】的时候,发现找不到这个参数。而细看参数列表的时候,查看__init__的方法,确认确实是没有【executable_path】这个参数了。说明Chrome这个包的版本进行了更新。这时候需要看看现在的selenium的说明文档了。不过我点开了selenium项目官网看,只有测试案例,没有其他的解释。终于,我在一堆说明文档中找到了最终的解释:从4.6版本开始,每个Selenium版本都附带创建了SeleniumManager,它的主要功能是自动驱动程序管理。当Selenium所需的驱动程序不可用时,SeleniumManager会自动【发现、下载和缓存】这些驱动程序。每个Selenium版本都附带了SeleniumManager二进制文件。这样,每种Selenium绑定语言都会调用SeleniumManager来执行自动驱动程序和浏览器管理。这意味着不需要我们手动下载chromedriver驱动,以及无需担心驱动程序(113)和Chrome自动更新版本(115)后,两者之间的不兼容的问题了!!!这也不用担心下面不知道何时会出现的警告了:“sessionnotcreated:ThisversionofChromeDriveronlysupportsChromeversion113”.(以上截图只是一部分,如果需要进一步了解,可以跳转到最后的seleniummanager的说明)如果以后遇到__init__()gotanunexpectedkeywordargument'XXX’的问题,解决这类问题办法总结:第一步,进入所需要用的库/包里,检查参数列表。看看我们用到的参数是否存在。如果不存在,就不需要加这个参数了,尝试不写这个参数是否可以继续运行。第二步,查看说明文档:检查我们正在使用的类或函数的官方文档,除了查找你使用的参数,还要检查我们用的包,是否适用于当前的库或框架版本。第三步,更新代码:如果你的代码基于旧版本的库或框架编写,而该库或框架已经更新,那么就需要更新你的代码了。一些相关的网站参考:seleniummanager的说明selenium项目官网网站selenium网站提供的练习案例
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 05:50 , Processed in 0.672208 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表