已解决(selenium报错)AttributeError: ‘WebDriver‘ object has no attribute ‘execute_cdp_cmd‘

已解决(selenium报错)AttributeError: ‘WebDriver‘ object has no attribute ‘execute_cdp_cmd‘







报错信息


粉丝群里面一个小伙伴运行selenium 操作Chrome浏览器的时候报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:

import time
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 修改请求头
chrome_options.add_argument(
    'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36')
driver = webdriver.Chrome(chrome_options=chrome_options)

with open('stealth.min.js') as f:
    js = f.read()

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": js
})

driver.get('https://bot.sannysoft.com/')
driver.save_screenshot('hidden_features.png')


报错信息如下:好像提示没有这个方法

Traceback (most recent call last):
  File "E:/Python学习/1.py", line 15, in <module>
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
AttributeError: 'WebDriver' object has no attribute 'execute_cdp_cmd'

在这里插入图片描述


报错翻译


报错内容翻译

AttributeError:“WebDriver”对象没有属性“execute\u cdp\u cmd”


报错原因


报错原因

他下载的selenium版本没有execute_cdp_cmd属性,需要按下面的命令切换有个属性的版本



解决方法


1. (第一步)先把selenium卸载,代码如下:

pip uninstall selenium

2.(第二步)安装最新selenium版本的,代码如下:

pip install selenium

具体操作步骤截图:

在这里插入图片描述

3. 再次运行代码就成功了


在这里插入图片描述


以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!

千人全栈VIP答疑群联系博主帮忙解决报错

由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.youkuaiyun.com/yuan2019035055/category_11466020.html

  • 优点作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!

  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

  • 注意:如果希望得到及时回复,订阅专栏后私信博主进千人VIP答疑群在这里插入图片描述
    在这里插入图片描述

免费资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

Python中,当你遇到`AttributeError: 'WebDriver' object has no attribute 'execute_cdp_cmd'`这个错误时,通常意味着你试图在一个`WebDriver`对象上调用`execute_cdp_cmd`方法,但是该方法并不属于`WebDriver`的定义范围。 `WebDriver`是Selenium库中的一个基础类,用于控制浏览器。`execute_cdp_cmd`是一个Chrome DevTools Protocol(CDP)的方法,用于执行远程命令。如果你要调用这个方法,你需要确保你是在使用支持它的浏览器驱动程序,比如`ChromeDriver`或`ChromeRemoteDriver`(针对Headless Chrome),并且版本兼容CDP协议。 解决这个问题的步骤通常是: 1. **检查版本**:确认你的Selenium和对应浏览器驱动(如ChromeDriver)版本是否支持`execute_cdp_cmd`。查看Selenium文档,确保CDP API已被包含在内。 2. **导入模块**:如果你没有显式地导入`webdriver.common.webdriver_cdp`,尝试添加这一行,因为这个模块包含了一些额外的 WebDriver 方法,包括 `execute_cdp_cmd`: ```python from selenium.webdriver.remote.webdriver import WebDriver from selenium.webdriver.common.webdriver_cdp import CDPClient ``` 3. **实例化**:创建一个`CDPClient`对象并将其绑定到`WebDriver`实例上,这样就可以调用`execute_cdp_cmd`了: ```python client = CDPClient(self.driver) response = client.execute_cdp_cmd(command, params) # command是你想要执行的CDP命令 ``` 4. **错误处理**:确保正确处理可能的异常,因为如果浏览器连接有问题或命令执行失败,可能会抛出异常。 5. **检查代码逻辑**:再次检查你的代码,确保你不是在其他不适用的地方尝试使用`execute_cdp_cmd`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁袁袁袁满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值