关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题

devtools/2024/11/15 4:23:11/

旧版本模式:

# 以下inputTag任选其一,其他注释掉
inputTag = driver.find_element_by_id("value")  # 利用ID查找inputTags = driver.find_element_by_class_name("value")  # 利用类名查找inputTag = driver.find_element_by_name("value")  # 利用name属性查找inputTag = driver.find_element_by_tag_name("value")  # 利用标签名查找inputTag = driver.find_element_by_xpath("value")  # 利用xpath查找inputTag = driver.find_element_by_css_selector("value")  # 利用CSS选择器查找

新版本模式:首先引入包

from selenium import webdriver
from selenium.webdriver.common.by import By

然后方法更改为:

# 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")

案例:

from selenium import webdriver
from selenium.webdriver.common.by import Byoptions = webdriver.EdgeOptions()
options.add_experimental_option('detach', True)driver = webdriver.Edge(options=options)
driver.get('https://layui.dev/docs/2/upload/')
#点击图片上传按钮
driver.find_element(By.XPATH, "/html/body/div[2]/div[2]/div[2]/div[2]/div[1]/div[2]/button").click()


http://www.ppmy.cn/devtools/4031.html

相关文章

BCLinux8U6系统部署oceanbase分布式数据库社区版之三、分布式数据库部署

本文是在完成步骤一、准备 OBD 中控机,步骤二3台数据库服务器准备后,正式开始oceanbase分布式数据库安装。 前序步骤:BCLinux8U6系统部署oceanbase分布式数据库社区版之一、准备 OBD 中控机 BCLinux8U6系统部署oceanbase分布式数据库社区版…

英伟达一系列高质量公开课来了!

B站:啥都会一点的研究生公众号:啥都会一点的研究生 英伟达免费提供许多自学课程,评价肥肠高,有专为初学者设计的也有更进阶的内容(提供证书),若实验室/单位基于NVIDIA Jetson进行开发&#xff…

IPv6改造:反向代理技术的原理和优缺点分析

在前面几篇文章中,我们介绍了目前行业中三种比较常见的IPv6改造技术,分别是隧道技术、双栈技术和翻译技术,这三种改造方式采用不同的技术方案实现了IPv4向IPv6网络的过渡,然而每种改造技术在改造周期和成本、业务连续性、协议兼容…

windows Webrtc +VS2019 (M124)下载编译以及调通测试demo

下载depot tools 设置梯子 git config --global http.proxy 127.0.0.1:10000 git config --global https.proxy 127.0.0.1:10000 下载 $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 设置depot_tools目录为环境变量 下载webrtc # 设置系统代…

Linux环境下安装selenium 和 chromedriver

安装selenium模块 pip3 install selenium安装谷歌浏览器 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm -y安装chromedriver 1)运行下面命令查看浏览器版本 google-chrome --version # Google Chrome 123.0.6312.12…

一比一实现ChatGPT流式接口前端显示效果(打字机效果)【对比几种不同的流式实现方案】

前端实现GPT或者其他大模型的流式推送的数据接收可以通过EventSource、Axios、或者基于EventSource实现的microsoft/fetch-event-source插件库; GPT官方是基于原生EventSource实现的流式数据接收,我们作为个人开发使用可以使用Axios或者使用microsoft/fe…

Swift网络编程

Swift网络编程涉及到一些重要的方面,包括URLSession的使用、数据解析(JSON/XML)以及网络请求的封装与管理。下面将详细介绍这三个方面的内容。 1.URLSession的使用: URLSession是Swift中用于网络请求的核心类。它提供了一系列方法来创建和管…

GitHub提交PR

本教程只做开源代码库Github工程提交pr的教程,不做其他的深入的讲解 Github和Gitlab的操作类似,只不过Github叫PR,GitLab叫MR,基本上做法是一致的 以开源项目QuickChat为例 https://github.com/Binx98/QuickChat https://github…