解决:AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘

news2024/12/24 2:50:38

解决:AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_xpath’

背景

在使用之前的代码通过selenium定位元素时,报错:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//*[text()=“编辑封面”]”}
(Session info: chrome=119.0.6045.124)

报错问题

File "D:\develop\python\Python3\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 861, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
  File "D:\develop\python\Python3\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 444, in execute
    self.error_handler.check_response(response)
  File "D:\develop\python\Python3\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 249, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[text()="编辑封面"]"}
  (Session info: chrome=119.0.6045.124)

截图如下:
在这里插入图片描述

报错翻译

主要报错信息内容翻译如下所示::
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//[text()=“编辑封面”]“}
(Session info: chrome=119.0.6045.124)
翻译:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素
:{“method”:“xpath”,“selector”:”//
[text()=“编辑封面”]”}
(Session info: chrome=119.0.6045.124)

报错原因

经过查阅资料,发现这个报错是由于Selenium更新到新版本(4.x版本)后,以前的一些常用的代码的语法发生了改变,当然如果没有更新过或是下载最新版本的Selenium是不受到影响的,还可以使用以前的写法。

小伙伴们按下面的解决方法即可解决!!!

解决方法

由于新旧版本的语法发生了改变,有两种解决方法。
方法一:使用或恢复(4.x版本)之前的版本
也就是使用或恢复Selenium版本到(4.x版本)之前的版本

方法二:修改代码的语法为新版本的语法
旧版本语法

inputTag = driver.find_element_by_xpath("value")  # 利用xpath查找

新版本语法

# inputTag = driver.find_element_by_xpath("value")  # 利用xpath查找
# 改为:
inputTag = driver.find_element(By.XPATH, "value")

扩展:

# inputTag = driver.find_element_by_id("value")  # 利用ID查找
# 改为:
inputTag = driver.find_element(By.ID, "value")

# inputTags = driver.find_element_by_class_name("value")  # 利用类名查找
# 改为:
inputTag = driver.find_element(By.CLASS_NAME, "value")

# inputTag = driver.find_element_by_name("value")  # 利用name属性查找
# 改为:
inputTag = driver.find_element(By.NAME, "value")

# inputTag = driver.find_element_by_tag_name("value")  # 利用标签名查找
# 改为:
inputTag = driver.find_element(By.TAG_NAME, "value")

# inputTag = driver.find_element_by_xpath("value")  # 利用xpath查找
# 改为:
inputTag = driver.find_element(By.XPATH, "value")

# inputTag = driver.find_element_by_css_selector("value")  # 利用CSS选择器查找
# 改为:
inputTag = driver.find_element(By.CSS_SELECTOR, "value")



今天的分享就到此结束了

欢迎点赞评论关注三连

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vioovi的ECRS工时分析软件:食品加工行业的生产效率提升利器

在食品加工行业,提高生产效率、降低成本、优化资源配置是至关重要的。随着科技的不断发展,越来越多的企业开始借助先进的软件工具来助力生产管理。本文将介绍一款备受食品加工企业青睐的工业工程软件——vioovi的ECRS工时分析软件,并探讨其如…

dapp技术开发

随着区块链技术的普及和应用,DApp(去中心化应用)逐渐成为了区块链领域中备受关注的核心部分。DApp是一种运行在去中心化网络上的应用程序,其开发、部署和运行都不依赖于任何中心化的实体或中介机构。这种应用程序的兴起和发展&…

基于springboot 手工艺品在线展示系统-计算机毕设 附源码 42553

springboot 手工艺品在线展示系统 目 录 摘要 1 绪论 1.1本课题研究意义 1.2系统开发目的 2 1.3系统开发技术的特色 3 1.4 springboot框架介绍 3 1.5论文结构与章节安排 4 2 手工艺品在线展示系统系统分析 5 2.1 可行性分析 5 2.2 系统流程分析 5 2.2.1数据增加流程 5 2.2.…

【正点原子STM32连载】 第四十八章 内存管理实验 摘自【正点原子】APM32F407最小系统板使用指南

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html## 第四…

如何用Java高效地存入一万条数据?这可能是你面试成功的关键!

大家好,我是你们的小米,一个热爱技术、喜欢分享的29岁程序猿。今天我要和大家聊一聊一个常见的面试题:在Java中,当我们需要将一万条数据存储到数据库时,如何能够提高存储效率呢? 在面试过程中,…

生活污水处理一体化处理设备有哪些

生活污水处理一体化处理设备有多种类型,包括但不限于以下几种: 鼓风机:提供曝气系统所需的气流。潜水污水提升泵:将污水从低处提升到高处。旋转式滚筒筛分机:对污水中的悬浮物进行分离和筛选。回旋式格栅:…

以技术创新引领行业发展,飞凌嵌入式获双项省级荣誉

近日,飞凌嵌入式荣获「2023年河北省专精特新示范企业」以及「第五批省级制造业单项冠军企业」两项殊荣。这两项荣誉的获得,是对飞凌嵌入式在专业技术领域与创新能力的高度认可,荣誉的背后,凝聚着飞凌嵌入式无数次的研发探索与对创…

Vite项目的初体验 - 非Vite脚手架版本

开箱即用 (out of box): 无需做任何的配置,就可以用vite来帮助我们处理构建工作。 前提 :node 版本 > 12.0.0,使用 npm 进行依赖管理。 本文的案例,从0到1的,一步一步的体会vite的作用。 本文…

QQ恢复聊天记录,就用这3个方法!

无论是因为误操作、手机丢失、系统崩溃,还是因为更换了新手机,恢复重要的QQ聊天记录都是一件必做的事情。通过聊天记录,用户可以随时查看之前的信息,以便了解事情的经过。 那么,如何恢复丢失的QQ聊天记录呢&#xff1…

【算法】道路与航线(保姆级题解)

题目 农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。 他想把牛奶送到 T 个城镇,编号为 1∼T。 (存在T个点) 这些城镇之间通过 R 条道路 (编号为 1 到 R) 和 P 条航线 (编号为 1 到 P) 连接。 (存在R条道路&#…

【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶等。 主要功能: 系统运行后,LCD1602液晶显示各种效果。 二、软件设计 /* 作者:嗨小…

分享一个使用get_hash_value比对数据脚本

使用get_hash_value获取每个字段的值,再sum起来比对,如果表有lob字段,则会先排除掉lob字段再比对其它字段 这个脚本有两个问题: 1.如果字段所有的值长度加起来超过4000会报错,比对不了,这种情况一般比较少…

【亚马逊云科技产品测评】活动征文|AWS EC2 部署Echarts大屏展示项目

前言 Echarts简介 ECharts是一个使用JavaScript开发的,开源的可视化库。它可以让数据变得生动起来,提供直观,交互性强,可高度个性化定制的数据可视化图表。ECharts支持大部分的浏览器,如IE6、Chrome、Firefox、Safari等…

《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互

QT版本:5.15.2 VS版本:2019 客户端程序主要包含三块:连接服务器,发送消息,关闭客户端 服务端程序主要包含三块:打开消息监听,接收消息并反馈,关闭服务端 1、先打开服务端监听功能 …

烟草5G智慧工厂数字孪生可视化平台,赋能烟草工业数字化智慧转型

随着卷烟工厂提质增效需求增强,信息化建设推进及生产制造系统智能化改革发展,各生产单元逐步升级完善数字化,最终实现智能制造成为必然趋势。因此,5G卷烟加工工厂的数字化转型迫在眉睫。中国烟草制造行业正迈向全新的市场经济时代…

vue-element-admin 集成框架设置中文语言

首先拉取中文版分支代码 https://github.com/PanJiaChen/vue-element-admin/tree/i18n (下载卡的话,下载小羊的压缩包,已上传资源) \src\lang\index.js 改完dangdangdang可以啦

性价比高的照明品牌,五款经济实惠的照明品牌推荐

很多家长有时候会说孩子觉得家里的台灯灯光刺眼,看书看久了就不舒服。这不仅要看光线亮度是否柔和,还要考虑台灯是不是有做遮光式设计。没有遮光式设计的台灯,光源外露,灯光会直射孩子头部,孩子视线较低,很…

Kotlin库实现多线程爬取数据

由于字数限制,以下是一个简化版的爬虫程序示例,使用了Kotlin的网络库kotlinx.coroutines和kotlinx.html。这个程序会爬取一个简单的Python多线程跑数据的网页,并打印出结果。 import kotlinx.coroutines.* import kotlinx.html.* import java…

Word脚注如何插入?1分钟学会!

“最近在写一些文章,引用了一些注释,想为它们增添一些脚注。有没有朋友知道在word里脚注怎么添加呀?” 使用word编写文章时,添加脚注是一项常见的任务,用于引用文献、添加注释或提供额外信息。但可能很多朋友不知道wor…

如何在本地运行稳定扩散模型

推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具: DreamTexture.js自动纹理化开发包 - NSDT 继 DALL-E 2 和 Imagen 之后,新的深度学习模型 Stable Diffusion 标志着文本到图像领域的巨大飞跃。本月早些时候发布的 Stable Diffusion 承诺…