当前位置: 首页 > news >正文

selenium4 元素定位

selenium4 9种元素定位

ID

在这里插入图片描述

driver.find_element(By.ID,"kw")

NAME

在这里插入图片描述

driver.find_element(By.NAME,"tj_settingicon")

CLASS_NAME

在这里插入图片描述

driver.find_element(By.CLASS_NAME,"ipt_rec")

TAG_NAME

在这里插入图片描述

driver.find_element(By.TAG_NAME,"area")

LINK_TEXT

在这里插入图片描述

driver.find_element(By.LINK_TEXT,"hao123")

PARTIAL_LINK_TEXT

在这里插入图片描述

driver.find_element(By.PARTIAL_LINK_TEXT,"hao")

XPATH

1、 普通语法

在这里插入图片描述

2、轴定位

关系:要找的元素是已知元素的XXX关系
用法: //…已知元素/轴定位名称::标签名[@xx=xx]
①parent:: 表示选取当前节点的父节点。 与 … (两个点)的作用是一样的。

driver.find_element_by_xpath('//a[@id="title6"]/parent::span/parent::form[@id="form"]')

②ancestor:: 表示当前节点的直系先辈(父、祖父等)元素,不包含叔叔伯伯。

driver.find_element_by_xpath('//a[@id="hongloumeng"]/br/ancestor::form')

③descendant:: 表示选取当前节点的所有的 直系 后代(孙子、儿子、孙子的儿子等)元素。

#通过元素定位表达式找到其中的一个a标签
driver.find_element_by_xpath('//form[@id="form"]/descendant::a[@id="title6"]')
#通过索引找到了所有的a标签中的第一个a标签
driver.find_element_by_xpath('//form[@id="form"]/descendant::a[1]') 

④preceding:: 表示选取当前节点的开始标签之前的所有的节点。

driver.find_element_by_xpath('//input[@value="123"]/preceding::a[3]')

⑤preceding-sibling:: sibling表示兄弟姐妹的意思。表示选取当前节点开始标签之前的所有的同级元素。

driver.find_element_by_xpath('//input[@value="123"]/preceding-sibling::a[1]')

⑥following:: 表示选取当前节点的结束标签之后的所有的元素。

driver.find_element_by_xpath('//input[@value="123"]/following::span[1]')

⑦following-sibling:: 表示选取当前节点结束标签之后的 所有的同级标签。

driver.find_element_by_xpath('//input[@value="123"]/following-sibling::span')

例子:
①定位到课程人数(通过兄弟找兄弟)
在这里插入图片描述

//p[text()=‘课程人数’]/preceding-sibling::p

②定位到“柠檬班倒是ice”行的“私信”
在这里插入图片描述

//span[text()=“柠檬班导师ice”]/ancestor::tr//span[text()=“私信”]

或者

//span[text()=“柠檬班导师ice”]/ancestor:td/following-sibling:td//span[text0=“私信”]

CSS_SELECTOR

#通过id定位  #表示id
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("1111")
#通过class定位   .表示class
driver.find_element(By.CSS_SELECTOR,".ipt_rec").click()
#通过标签定位和id组合定位
driver.find_element(By.CSS_SELECTOR,"input#kw").send_keys("ccc")#通过层级关系定位 > 表示上下级
driver.find_element(By.CSS_SELECTOR,"form#form>span>input#kw").send_keys("css")#其他属性定位 需要加[]
# <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/>
driver.find_element(By.CSS_SELECTOR,"[autocomplete='off']").send_keys("xxx")
driver.find_element(By.CSS_SELECTOR,"[maxlength='255']").send_keys("xxx")
driver.find_element(By.CSS_SELECTOR,"[name='wd']").send_keys("xxx")#css也可以通过索引nth-child(1)来定位子元素,直接翻译过来就是第几个小孩
driver.find_element(By.CSS_SELECTOR,".mnav:nth-child(2)").click()# nth-of-type(3)
driver.find_element(By.CSS_SELECTOR,"a.mnav:nth-of-type(3)").click()#同时满足两个属性
driver.find_element(By.CSS_SELECTOR,"[autocomplete='off'[name='wd']").send_keys("Xxx")
网格定位

above、below、to left of、to right of、near
driver.find_element(locate_with(By.TAG_NAME,“input”).above({By.XPATH:“//[@ID=“”pwd]”}))

案例:定位到登录按钮
在这里插入图片描述

driver.find_element(locate_with(By.TAG_NAME,"div").to_right_of({By.XPATH:'//div[text()="帮助中心"]'})).click()

相关文章:

selenium4 元素定位

selenium4 9种元素定位 ID driver.find_element(By.ID,"kw")NAME driver.find_element(By.NAME,"tj_settingicon")CLASS_NAME driver.find_element(By.CLASS_NAME,"ipt_rec")TAG_NAME driver.find_element(By.TAG_NAME,"area")LINK_T…...

sql高级教程-索引

文章目录 架构简介1.连接层2.服务层3.引擎层4.存储层 索引优化背景目的劣势分类基本语法索引结构和适用场景 性能分析MySq| Query Optimizerexplain 索引优化单表优化两表优化三表优化 索引失效原因 架构简介 1.连接层 最上层是一些客户端和连接服务&#xff0c;包含本地sock通…...

拼团小程序制作技巧大揭秘:零基础也能轻松掌握

随着拼团模式的日益流行&#xff0c;越来越多的商家和消费者开始关注拼团小程序的制作。对于没有技术背景的普通人来说&#xff0c;制作一个拼团小程序似乎是一项艰巨的任务。但实际上&#xff0c;选择一个简单易用的第三方平台或工具&#xff0c;可以轻松完成拼团小程序的制作…...

报错:The supplied javaHome seems to be invalid. I cannot find the java executable

AS 升级遇到的问题 问题 升级 Android Studio&#xff0c;碰到无法检测到 java The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: D:\Program Files\Android\Android Studio\jre\bin\java.exe 然后去网上找解决思路。 终于…...

关于 硬盘

关于 硬盘 1. 机械硬盘1.1 基本概念1.2 工作原理1.3 寻址方式1.4 磁盘磁记录方式 2. 固态硬盘2.1 基本概念2.2 工作原理 1. 机械硬盘 1.1 基本概念 机械硬盘即是传统普通硬盘&#xff0c;硬盘的物理结构一般由磁头与盘片、电动机、主控芯片与排线等部件组成。 所有的数据都是…...

Java反射实体组装SQL

之前在LIS.Core定义了实体特性&#xff0c;在LIS.Model给实体类加了表特性&#xff0c;属性特性&#xff0c;外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类&#xff0c…...

tensorrt安装使用教程

一般的深度学习项目&#xff0c;训练时为了加快速度&#xff0c;会使用多GPU分布式训练。但在部署推理时&#xff0c;为了降低成本&#xff0c;往往使用单个GPU机器甚至嵌入式平台&#xff08;比如 NVIDIA Jetson&#xff09;进行部署&#xff0c;部署端也要有与训练时相同的深…...

Java后端开发(十)-- idea(2022版)将 已push 的 远程仓库 的 多条commit记录 进行撤销

目录 1.多次 修改Test01类后,提交到本地仓库 。 2.多次重复 1 的步骤,多次commit成功后,在Git =》Log中会显示,commit记录...

常见面试题-Netty专栏(一)

typora-copy-images-to: imgs Netty 是什么呢&#xff1f;Netty 用于做什么呢&#xff1f; 答&#xff1a; Netty 是一个 NIO 客户服务端框架&#xff0c;可以快速开发网络应用程序&#xff0c;如协议服务端和客户端&#xff0c;极大简化了网络编程&#xff0c;如 TCP 和 UDP …...

【iOS】JSONModel的基本使用

文章目录 前言一、导入JSONModel二、JSONModel的基本使用1.基本用法2.模型集合3.模型导出为NSDictionary或JSON4.设置所有属性可选&#xff08;所有属性值可以为空&#xff09;5.下划线(蛇式)转驼峰命名法 前言 JSONModel 是一个用于 Objective-C 的开源库&#xff0c;它用于简…...

imu预积分学习(更新中)

imu预积分学习&#xff08;更新中&#xff09; IMU预积分可以做什么&#xff1f; 以上面那个经典图片为例子&#xff0c;IMU可以通过六轴数据&#xff0c;拿到第i帧和第j帧之间的相对位姿&#xff0c;这样不就可以去用来添加约束了吗 但是有一个比较大的问题是&#xff1a; I…...

算法刷题-链表

算法刷题-链表 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]…...

Linux 挂载磁盘到指定目录

问题&#xff1a;公司分配了数据磁盘&#xff0c;但是分区也没有挂载到目录 首先 df -h 查看一下挂载点的情况 查看服务器上未挂载的磁盘 fdisk -l 注&#xff1a;图中sda、sdb &#xff08;a、b指的是硬盘的序号&#xff09; 分区操作 我们可以看到b硬盘有536G未分区&…...

ZYNQ linux调试LCD7789

一,硬件管脚 1,参数解释和实物 LVGL是一个开源的图形库,主要用于MCU上屏幕UI的部署,功能完善,封装合理,可裁切性强,也可以实现Linux上fbx的部署。LVGL官网LVGL - Light and Versatile Embedded Graphics Library 每根线的作用...

【双向链表的插入和删除】

文章目录 双向链表双向链表的插入双向链表的删除操作 双向链表 双向链表的结构定义如下&#xff1a; //双向链表的结构定义 typedef struct DuLNode {ElemType data;struct DuLNode* prior, * next; }DuLNode,*DuLinkList;双向链表的结点有两个指针域&#xff1a;prior&#…...

【Android知识笔记】Webview专题

WebView 核心组件 类名作用常用方法WebView创建对象加载URL生命周期管理状态管理loadUrl():加载网页 goBack():后退WebSettings配置&管理 WebView缓存:setCacheMode() 与JS交互:setJavaScriptEnabled()WebViewClient处理各种通知&请求事件should...

Leetcode第 368 场周赛

元素和最小的山形三元组 II 预处理前缀和后缀最小值,记为pre[i]和sa[i] 对于当前编号i&#xff0c;如果前面的最小值和后面的最大值都小于nums[i],则记录ans[i] nums[i]pre[i-1]sa[i1] 结果输出最小的ans[i]即可。 合法分组的最少组数 统计每一个数字出现的次数。将每一个数…...

Mysql数据库 3.SQL语言 DML数据操纵语言 增删改

DML语句&#xff1a;用于完成对数据表中数据的插入、删除、修改操作 一.表数据插入 插入数据语法&#xff1a; 步骤例&#xff1a; 1.声明数据库&#xff1a;use 数据库名; 2.删除操作&#xff1a;drop table if exists 表名; 3.创建数据库中的表&#xff1a;create table 表…...

Java中,如何去掉字符串中前面所有的0

大家好&#xff0c;我是三叔&#xff0c;这期主要给大家分享下在开发中使用的字符串的一些常见方法。 例如&#xff1a;00000000110&#xff0c;现在需要去掉前面所有补的0&#xff0c;得到110&#xff0c;相信大家在开发中肯定有遇到过类似的开发需求&#xff0c;如何做&…...

数组能开空间大小

奈何辰星无可奈_leetcode,中等难度,算法-CSDN博客 这个博客介绍的很好&#xff0c;可以参考下...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...