selenium 定位元素(并集)

2023-05-16

并集:
answer = driver.find_element(By.CLASS_NAME, ‘info_content’ and ‘huida_con’).text

1. id

说明:通过元素的id属性来定位元素,具有唯一性,定位后基本不会重复
前提:元素有id属性
id定位方法:find_element(by=By.ID, value=’ ‘)或 find_element (“id”, value=’ ')
示例:打开百度搜索页面,通过id定位,输入搜索关键字

2. name

说明:通过name属性来指定元素名称,相对少见,但容易重名
前提:元素有name属性
name定位方法:find_element(by=By.NAME, value=’ ')或 同上
示例:打开百度搜索页面,通过name定位,输入搜索关键字

3. class_name

说明:指定元素的类名,通过class属性来定位;不推荐,重复的概率非常高
前提:元素有class属性
class_name定位方法:find_element (by=By.CLASS_NAME, value=’ ') 或 同上
示例:打开百度搜索页面,通过class_name定位,输入搜索关键字

4. tag_name

说明:HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以一定会返回多个结果,一般不建议使用,可用于查找多个重复的内容的时候使用。
tag_name定位方法:find_element(by=By.TAG_NAME, value=’ ')
以下两种是根据超链接的文本定位

5. link_text

说明:link_text定位与前面4个定位有所不同,它专门用来定位超链接文本(文本值)
前提:定位的元素是链接标签(a标签)
link_text定位方法:find_element(by=By.LINK_TEXT, value=’ ')
示例:打开首页,通过link_text定位到登录按钮,并进行点击操作

6. partial_link_text

说明:partial_link_text定位是对link_text定位的补充,partial_link_text为模糊匹配;link_text为精确匹配。
前提:定位的元素是链接标签(a标签);通过传入a标签局部文本或全部文本来定位元素,要求输入的文本能够唯一找到这个元素
partial_link_text定位方法:find_element(by=By.PARTIAL_LINK_TEXT, value=’ ')
示例:打开百度首页,通过partial_link_text定位到新闻,并进行点击操作
元素路径定位(如果同一页面中有多个结构相同的元素,可以用xpath定位)

7. xpath

说明:有自己的独特语法,基于文件系统树状结构形态定位的
相对路径:类似于一种查询的调用
//*[@id=“kw”]

//                   全局范围
*/a/span             任何一个元素或者增加筛选精度指定一个标签
[ ]                  添加筛选条件
@                    表示添加的条件是属性
id                   属性的名称
kw                   属性的值
and                  可以进行多个条件的关联
text()               可以通过文本来查找    eg://*[text()="新闻"] 
/..                  通过子级定位到它的父级    eg: //*[@id="kw"] /.. 
/                    通过父级定位到它的子级    eg: //*[text()="新闻"] /span[1]
contains函数      	 eg: //a[contains(text(),"百度"]) 
contains()           eg: form[contains(@id,"f"]

8. 元素定位之css selector(选择器定位)

find_element_by_css_selector("css选择器定位策略”)
find_elements_by_css_selector("css选择器定位策略”)

8.1 css可以通过元素的 id,class,标签 这三个常规属性直接定位到

  tips:若用id定位,则用 #。若用class定位,则用 . 
  下面是百度搜索框的HTML代码:     
  
 通过css selector定位有如下三种常规方式:

find_element_by_selector(“#kw”) (#表示通过id定位)
find_element_by_selector(“.s_ipt”) (. 表示通过class定位)
find_element_by_selector("标签名“”) 其实单纯通过标签名来定位元素,是有很大局限性的,因为一个页面中,非常大可能的
存在标签名的重复,因此无法很精确的定位。

8.2 css通过其他属性定位

  通过 标签+属性  即 标签名[属性名=属性值]。 还是以百度搜索框为例:
  find_element_by_css_selector("input[autocomplete='off']")
  tips:和xpath定位不同的是,标签名前不用// ,[ ]内的属性名前不用@符号,而xpath则需要。其余的规则与xpath相同。 
  如果属性是唯一的,那么标签名可以不用写。

8.3 层级定位

  通过 父标签[父标签属性名=父标签属性值]>(或者空格)子标签    我们以百度搜索按钮为例:
  find_element_by_css_selector("span[class='bg s_btn_wr']>input")
  通过搜索按钮的父标签中的class属性定位,然后找到其子标签input,也就是我们的搜索按钮元素所在。

8.4 索引定位

  当父标签中有很多相同的子标签时,通过索引找到所需要定位的元素。
  通过 父标签[父标签属性名=父标签属性值]>子标签:nth-child(索引序号) 
  tips:索引从1开始
  我们以126邮箱的密码输入框为例:
  find_element_by_css_selector("div[class='u-input box]>input:nth-child(2)')
  记住:用css_selector进行元素定位,父标签到子标签都用>或空格。如果用的是>,意思是指第一个子标签
  而用空格的话,则可以为任何子标签。

8.5 逻辑定位

   在xpath中,逻辑定位用到“and”,"or",“not”,而在我们的css_selector中,则不需要。
   通过 标签名[标签名1= 属性值1][标签名2=属性值2]
   同样,我们通过126邮箱的密码输入框为例:

8.6 模糊匹配

   ^:以什么开头
   $:以什么结尾
   *:匹配所有
   find_element_by_css_selector(“标签名[属性名*(或^,或$)='属性值']”)

9 例子

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium 定位元素(并集) 的相关文章

  • JSON序列化与反序列化

    一 需要序列化的POJO和初始化代码 以下3种类库的使用均使用下面这个POJO public class User public User private String id private String name private Stri
  • 排序

    一 数据流中的中位数 题目描述 xff1a 如何得到一个数据流中的中位数 xff1f 如果从数据流中读出奇数个数值 xff0c 那么中位数就是所有数值排序之后位于中间的数值 如果从数据流中读出偶数个数值 xff0c 那么中位数就是所有数值排
  • 常用的shell语句

    看文件里第几行 看倒数5行 tail n 5 SpecialVariable sh 看正数3行到最后一行 tail n 43 3 SpecialVariable sh 查看磁盘空间大小 df h 查看内存空间大小 top n 1 xff08
  • 【转载】SLAM技术 即将颠覆哪些领域

    什么是SLAM xff1f 机器人在未知环境中 xff0c 要实现智能化需要完成三个任务 xff0c 第一个是定位 xff08 Localization xff0c 第二个是建图 Mapping xff0c 第三个则是随后的路径规划 Nav
  • SIFT学习笔记(结合matlab源码)

    源码下载地址 xff1a https download csdn net download u014509577 11011793 一 算法流程 1 生成高斯金字塔 xff0c 并由此生成差分高斯金字塔 xff08 DoG xff09 xf
  • 点到面的配准算法

    学习一下PCL中点到面的配准算法 笔记一下以免以后忘记 好记性不如烂笔头 嘻嘻 一 理论基础 1 估计表面法向量问题 xff1d 对点集的K最近邻点的协方差矩阵求特征值和特征向量 xff08 PCA xff09 问题 2 假设三维点集中的任
  • GICP学习笔记

    首先贴一下原始论文的下载地址 xff1a http www roboticsproceedings org rss05 p21 pdf 下面开始论文学习笔记 1 ICP算法 标准ICP算法的关键概念可归纳为两个步骤 xff1a 计算两次扫描
  • python求解中位数、均值、众数

    首先定义一个数据 xff0c 在这里我假定为 xff1a num 61 2 3 2 5 1 0 1 2 9 一 求中位数 中位数 xff08 又称中值 xff0c 英语 xff1a Median xff09 xff0c 统计学中的专有名词
  • 获取占用率大于70%的硬盘.java

    获取占用率大于70 的硬盘 xff0c 准备写入oracle过程 xff0c 在占比大于90 时 xff0c 向指定邮箱发送邮件 import java io File import java text DecimalFormat publ
  • 使用KNN方法进行MNIST数据集分类

    声明 xff1a 本文的代码部分可以戳这里下载 一 MNIST数据集 MNIST是深度学习的经典入门demo xff0c 他是由6万张训练图片和1万张测试图片构成的 xff0c 每张图片都是28 28大小 xff08 如下图 xff09 x
  • python遍历整个文件夹中的所有.txt文件并将绝对路径保存在指定的txt文档中

    在深度学习处理数据时经常会用到的一步操作 xff0c 路径名因人而异 xff0c 可以根据需求自行更改 import os get txt document rootdir 61 os path join 39 要读取的txt文件的绝对路径
  • PointNet的点云分割实验

    PointNet属于直接对点云数据进行语义分割的开山之作 xff0c 优点就不一一细说了 xff0c 直接上代码来说明跑代码的过程以及过程中遇到的问题 笔者不才 xff0c 欢迎斧正 xff01 实验的代码可以在这里下载 xff1a htt
  • 图表组件FusionCharts介绍及免费下载地址

    FusionCharts套件帮助你创建令人惊叹的 图表控件 xff0c 仪表 xff0c 并在瞬间映射在你的所有网站和企业应用 使用它 xff0c 你可以建立漂亮的仪表板 xff0c 报告 xff0c 分析 xff0c 监测 xff0c 调
  • Vscode编译调试C++程序

    一 简介 本文讲述在windows平台下在Vscode中使用g 43 43 编译本地C 43 43 程序 xff0c 并使用gdb调试的方法 可能有些朋友会说 xff1a windows上不是已经有visual studio这个最强IDE了
  • vmware下vmdk文件越来越大的解决方法探讨

    前段时间在vmware下面安装了ubuntu镜像 xff0c 用了一段时间后发现ubuntu的vmdk文件越来越大 xff0c 达到了31 6GB xff0c 如下图所示 而且随着继续安装新的软件仍然在增大中 即使在ubuntu里面删除了文
  • IAR烧写MSP430失败的解决方法

    1 失败状况如下 在驱动安装没错 xff0c xff08 板子插进去usb自动安装完成 xff09 config选的MCU也没错的情况下出现如图错误 xff1a The debugging session could not be star
  • 数据分析、数据可视化中的常用图形

    整理了一些常用的数据可视化图形 xff0c 一些图形重点已列出 xff0c 若想深入了解可自行百度 目录 简单数据可视化矢量图 数据分析 其他可视化图表 xff1a 逻辑分析 层次分析导图 简单数据可视化矢量图 条柱图 xff1a 标准条
  • 专线的种类介绍

    常见的三种专线类型 裸纤 也叫裸光纤 xff0c 运营商会提供光纤 xff0c 中间不经过别的设备 xff0c 光纤价格昂贵 1 裸纤按照距离收费 xff0c 距离越远越贵 xff08 一般不跨省 市 xff0c 太贵 xff09 2 光纤
  • Unity3D场景切换

    首先新建两个场景 xff1a Scene 1与Scene 2 在第一个场景Scene 1中加入UI控件Button Text设置为 点击切换场景 xff0c 名称为默认值 Button 新建一个脚本 xff0c 命名为ChangeScene
  • oracle10g后面的聚合运算函数:cube、rollup等

    oracle10g后面的聚合运算函数 xff1a cube rollup及聚合运算sql 看到很多次阅读 xff0c 所以还是过来再写点东西 cube和rollup xff0c 只能配合group by使用的 xff0c 之所以之前没怎么看

随机推荐

  • Ubuntu 14.04利用tasksel安装配置lamp环境

    用 tasksel 可以方便安装dns server lamp kubuntu desktop ubuntu desktop xubuntu之类的软件包 这个软件在server版是预装的 xff0c 而在桌面版里是不预装的 xff0c 想用
  • 设置USB无线网卡为监听模式大学霸IT达人 

    设置USB无线网卡为监听模式大学霸IT达人 当用户实施无线网络渗透时 xff0c 设置无线网卡为监听模式是必不可少的操作 大学霸IT达人信息安全技术大讲堂通常情况下 xff0c 用户会遇到各种问题 xff0c 如网卡不支持 xff0c 网络
  • 判断无线网卡是否支持5GHz频段

    判断无线网卡是否支持5GHz频段 目前 xff0c 无线WiFi网络支持2 4GHz和5GHz两个频段 大学霸IT达人其中 xff0c 5GHz传输速率更高 xff0c 逐步会成为主流 如果要使用或渗透5GHz网络 xff0c 则无线网卡也
  • 嵌入式开发之Vscode实用插件大全

    嵌入式开发之Vscode实用插件大全 Chinese Simplified 简体中文 xff08 神器 xff09 C C 43 43 amp CMake amp C C 43 43 Extension Pack xff08 神器 xff0
  • django将网络中的图片,保存成model中的ImageField

    有这样的情形 xff0c django个人头像在model中是 xff1a class UserProfile AbstractUser 34 34 34 用户 34 34 34 name 61 models CharField max l
  • 【AI视野·今日Robot 机器人论文速览 第九期】Thu, 17 Jun 2021

    AI视野 今日CS Robotics 机器人学论文速览 Thu 17 Jun 2021 Totally 15 papers x1f449 上期速览 更多精彩请移步主页 Daily Robotics Papers Autonomous Nav
  • SpringBoot 集成cas5.3 实现sso单点登录

    博主说明 这篇文章速成cas xff0c 下面包含了cas统一认证登录 xff0c 统一认证登出 有兴趣想了解更多cas内容的可以看看我下面这些文章 springboot 使用cas5 3 sso概念springboot 集成cas5 3
  • UltraVNC 使用,内网局域网远程控制

    介绍 UltraVNC 是客户端 服务器软件 xff0c 允许你经由 TCP IP 连线 xff08 也就是主机都在同一网络环境下 xff09 xff0c 控制远端的电脑 这个版本的开发以 RealVNC 为基础 xff0c 加上了Tigh
  • JS判断一个字符串是否在数组中

    方法1 xff1a arr indexOf 某元素 xff1a 未找到则返回 1 span class token keyword var span number span class token operator 61 span span
  • pb9 数据窗口的计算列

    数据窗口中 xff0c 可以增加计算列 xff0c 进行合计 平均或者其他计算动作 在窗口的按钮 xff0c 或者其他事件中 xff0c 可以对数据窗口的计算列的表达式进行修改 xff0c 这样可以将数据窗口多用 办法 xff1a dw 1
  • tar打包命令(linux)

    1 打包命令 span class token function tar span cvf 归档路径 被打包文件路径 span class token punctuation span c create archive v verbose
  • Python字符串与数组相互转换

    Python中有join 和os path join 两个函数 xff0c 具体作用如下 xff1a join xff1a 连接字符串数组 将字符串 元组 列表中的元素以指定的字符 分隔符 连接生成一个新的字符串os path join x
  • FastApi 文件上传upload

    需要使用的Python包 xff1a fastapi和uvicorn span class token keyword import span time span class token keyword import span uvicor
  • zip/tar 分割压缩和合并解压

    1 zip 分割压缩和合并解压 span class token comment 准备工作 xff1a 将文件或文件夹打包为zip压缩包 span span class token function zip span r src zip s
  • python 创建excel 并保存(两种方法)

    1 概要 python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的 2 xlwt 创建excel并保存 xlwt中 xff1a 通过xlwt Workbook 来新建工作簿 xff1b 通过 add she
  • Python 保留两位小数几种方法

    一 xff1a 保留两位小数 且 做四舍五入处理 四舍六入五成双 xff0c 四舍六入五凑偶的意思 xff0c 根据百度词条的解释如下 xff08 1 xff09 当精确位后面一位的数字是1 4的时候 xff0c 舍去 xff08 2 xf
  • XSS 攻击常用代码

    1 XSS 攻击常用代码 span class token number 1 span 39 34 span class token punctuation span span class token punctuation span sp
  • xpath 爬虫案例

    1 案例 爬取糗百中的段子内容和作者名称 span class token keyword from span lxml span class token keyword import span etree url span class t
  • Selenium 鼠标滚动操作

    1 JS处理滚动条问题 span class token number 1 span 滚动条回到顶部 xff1a js span class token operator 61 span span class token string 34
  • selenium 定位元素(并集)

    并集 xff1a answer 61 driver find element By CLASS NAME info content and huida con text 1 id 说明 xff1a 通过元素的id属性来定位元素 xff0c