Web自动化元素定位之xpath定位详解

news2024/11/18 4:44:24

Web自动化常见的定位方式

为什么要学习定位

1.让程序操作指定元素,就必须先找到此元素

2.程序不像人类用眼睛直接定位到元素

  1. webDriver提供了八种定位元素的方式

 

定位方式总结

1.id、name、class_name、tag_name:根据元素的标签或元素的属性来进行定位

2.link_text、partial_link_text:根据超链接的文本来进行定位(a标签)

3.xpath:为元素路径定位--重点4.cSs: 为css选择器定位(样式定位)

 

ID定位

说明:HTML规定id属性在整个HTML文档中必须是唯一的,id定位就是通过元素的id属性来定位元素;

前提:元素有id属性

id定位方法: find_element_by_id0

需求:打开百度界面(https://www.baidu.com/),通过id定位,输入信息,点击百度的钮

 

tag _name标签定位

注:由于HTML源码中,经常会出现很多相同的的标签名,所以一般不使用该定位方式

tag _name是通过标签名称来定位的,如a标签

https://hao.uisdc.com/

 

link text定位

说明:link_text定位于前面4个定位有所不同,它专门用来定位超链接文本(<a>文本值</a>)

前提:定位的元素是链接标签(a标签)

link_text定位方法: find_element_by_link_text()

打开百度首页,通过link_text(链接文本)定位到【新闻】按钮,并进行点击操作

 

元素组定位

元素组定位方式: find_elements_by_xxx

作用:

1.查找返还定位所有符合条件的元素

⒉.返还的定位元素格式为列表格式

说明:

列表数据格式的读取需要指定下标(下标从0开始)

案例要求:打开百度页面

https://www.baidu.com/,通过元素组定位>定位: "//*[@id='s-top-left']/a"

xpath定位

xpath概述:--位置定位(路径方式)

1.xpath即为xml path的简称,它是一种用来确定XML文档中某部分位置的语言。

2.HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中来定位元素3.xpath为强大的语言,是因为它有非常灵活的定位策略。

定位方法: find_element_by_xpath()
xpath定位策略(方式)

1.路径定位--绝对路径、相对路径

⒉利用元素属性定位

3.层级与属性结合定位

4.属性与逻辑定位结合

路径定位

绝对路径:从最外层元素到指定元素之间所有经过元素层级路径;如/html/body/div/p[2]

提示:

1.相对路径以//开始

⒉.通过浏览器查看元素属性,右击复制xpath快速生成

xpath表达式描述及格式

 

xpath通过属性定位

xpath通过该元素已有的属性进行定位,如id, name等等

 

xpath通过text文本定位元素

当前元素没有id.name这些属性,如何定位?

打开商城界面(http:llshopxo.hctestedu.com/index.php?s=/indexluser/logininfo.html),通过

xpath定位邮

箱登录标签

定义元素:ll*[text()="邮箱验证码"]

 

xpath通过层级定位元素

要找到的元素没有属性,但是它的父级有;

url = "http:llshopxo.hctestedu.com/index.php?s=/index/userllogininfo.html"

示例:lI*[@class='login-top']/a

xpath逻辑运算

解决元素之间相同属性重名问题;

示例: 'll*[text()="注册" and @class="am-btn am-btn-secondary am-btn-xs am-radius"]'

http:/llshopxo.hctestedu.com/index.php?s=/index/userlogininfo.html

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

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

相关文章

gitLab配置ssh实现私钥访问

1.配置ssh文件 1.cd C:\Users\用户名\.ssh 找到文件夹 删除.ssh 里面所有其他文件方面我们配置要最新的 2.win r cmd 呼出命令行 ssh-keygen -t rsa -C "必须对应gitLab用户名" 3.生成文件夹拿到ssh 4.复制id_rsa_pub 文件的全部字符串 公钥给到GitLab服务器 2.公…

使用 JavaScript 在没有插件的情况下输入文本掩码

文章目录 JavaScript 中信用卡号的输入掩码JavaScript 中的邮政编码输入掩码在 JavaScript 中使用括号输入掩码的电话号码为 JavaScript 中的不同字段自定义输入掩码 JavaScript 输入掩码或掩码文本框是一种控件&#xff0c;它为用户提供了一种简单可靠的方式来收集基于标准掩码…

【Servlet学习三】实现一个内存版本的简易计算器~

目录 一、方式1&#xff1a;使用form表单的形式&#xff08;不推荐&#xff09; &#x1f308;1、前端代码&#xff1a;HTML文件 &#x1f308;2、后端代码&#xff1a;Calculator_form.java文件 &#x1f308;3、最终效果 二、方式2&#xff1a;使用ajax形式&#xff08;…

力扣 105. 从前序与中序遍历序列构造二叉树

题目来源&#xff1a;https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/description/ C题解&#xff1a;前序遍历是中左右&#xff0c;中序遍历是左中右&#xff0c;所以拿到两个遍历数组&#xff0c;我们可以从前序遍历首节点获取中间…

Docker 私有仓库

一、私有仓库搭建 拉取私有仓库镜像 docker pull registry 启动私有仓库 docker run -id --nameprivate_registry -p 5000:5000 registry 打开浏览器输入 http://私有仓库服务器IP地址:5000/v2/_catalog 修改 daemon.json 文件 sudo gedit /etc/docker/daemon.json 在…

在Mapper.xml中写复杂的动态SQL语句

说明&#xff1a;在三层架构开发中&#xff0c;使用Mybatis框架操作数据库有两种方式&#xff0c;一种是在Mapper类里的方法上加注解&#xff08;Select、Insert等&#xff09;&#xff0c;另一种是在Mapper.xml文件的标签内写SQL语句。第二种方式相比第一种&#xff0c;具有更…

electron webview 页面加载事件顺序

electron webview 页面加载事件顺序 1.did-start-loading 页面开始加载web 2.load-commit 主页面文档加载框架 3.page-title-updated titledom 4.dom-ready 主页面 dom 加载完成electron 5.load-commit frame文档加载.net 6.did-frame-finish-load frame 加载完成cdn 7.d…

Springboot钉钉免密登录集成(钉钉小程序和H5微应用)

欢迎访问我的个人博客:www.ifueen.com RT&#xff0c;因为业务需要把我们系统集成到钉钉里面一个小程序和一个H5应用&#xff0c;并且在钉钉平台上面实现无感登录&#xff0c;用户打开我们系统后不需要再输入密码即可登录进系统&#xff0c;查阅文档实际操作过之后记录一下过程…

HTML转EXE工具(HTML App Build)永久免费版

HTML转EXE工具&#xff08;HTM2EXE&#xff09;在CSDN上发布时间轴&#xff1a; 序号时间链接12022-08-17HTML转EXE工具&#xff08;HTML App Build&#xff09;初始版22023-02-18HTML转EXE工具&#xff08;HTML App Build&#xff09;最新版32023-06-23&#xff08;实际未发布…

高德地图点聚合报错

最近做项目遇到这样一个玄学问题&#xff1a; 在写高德地图的时候加一个覆盖物 除了金华市其他城市覆盖并且不能点击&#xff0c;金华市内点击获取坐标点这样一个业务&#xff0c; 到这里都很正常&#xff0c;代码奉上 const AMap window.AMapconst state reactive({mapInp…

黑客进行网络欺骗攻击的手段有哪些?

网络欺骗主要方式有&#xff1a;IP 欺骗、ARP 欺骗、DNS 欺骗、Web 欺骗、电子邮件欺骗、源路由欺骗和地址欺骗等。其技术主要分为 HONEYPOT、分布式 HONEYPOT 和欺骗空间技术等。其中&#xff0c;源路由欺骗方式指通过指定路由&#xff0c;以假冒身份与其他主机进行合法通信或…

python实现遗传算法(单目标优化,多目标优化)

首先我们应该熟悉numpy的矩阵取值 [:, 1::2] # 第一维&#xff0c;从第二个元素起步长为2取元素[:, ::2] # 第一维&#xff0c;从第一个元素起步长为2取元素 1 遗传本质 染色体的交叉和变异 种群&#xff1a;很多个个体组成的群体&#xff0c;即为所有可能解的集合个体&…

[muduo学习笔记]事件分发器(Channel、Poller)

此学习笔记参考施磊老师的muduo教学课程。 目的是搞懂 muduo 网络库的核心框架。EventLoop、channel 和 Poller 之间的关系 文章目录 1 Poller 抽象基类2 Channel3 模块的包含muduo模块梳理参考&#xff1a; 整体框架如下&#xff1a; muduo是基于 Reactor 模式的网络库&#…

vue中v-for重复数据处理||element下拉框去除重复

前端去重方法有多种,只说三种常用的(新老方法都有) 1-使用常规双for循环(暴力算法)遍历比较的方式对值进行比较 2-使用js方法sort排序&#xff08;只针对数组&#xff09;&#xff0c;但是经常在vue等新框架中提示TypeError: arr.sort is not a function 3-使用reduce方法(>…

传统后端漏洞----(Web Server) 解析漏洞

笔记 前言IIS解析漏洞文件夹解析漏洞原理限制条件 ";" 分号截断漏洞原理 IIS解析漏洞检测IIS 文件夹解析漏洞检测IIS 分号截断漏洞检测 防御手段 Nginx解析漏洞Nginx 文件类型错误解析漏洞导致任意PHP代码执行原理Nginx 空字节解析漏洞导致任意文件可解析&#xff08…

DB2:DB2TOP解析

文章目录 简介主界面功能介绍快捷设置数据库监控(d)表空间监控(Tablespace)&#xff08;t&#xff09;动态SQL监控(Dynamic SQL)(D)表监控&#xff08;T&#xff09;会话监控(session)(l)缓冲池监控(Bufferpool)(b)锁监控(Locks)(U)瓶颈监控(Bottleneck)(B)load监控(Utilities)…

FastDFS单机部署及SpringBoot整合

前言 FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括&#xff1a;文件存储、文件同步和文件访问&#xff08;文件上传和文件下载&#xff09;&#xff0c;可以解决高容量和负载平衡问题。FastDFS应满足其服务基于文件的网站的要求&#xff0c;如照片共享网站和视…

数据安全服务,美创科技为“数字国贸” 筑牢安全防线

在数字经济蓬勃发展的当下&#xff0c;国有企业作为国民经济的“中流砥柱”&#xff0c;正以主力军和先行者之姿&#xff0c;以数字化转型创新作为引擎&#xff0c;驱动高质量发展。数字化进程持续深入&#xff0c;伴随数据要素多样流动&#xff0c;降低数据安全风险&#xff0…

UART I2C SPI CAN LIN 和ETH这些通讯外设的内在联系

这些不同的通讯手段之间其实有着许多隐藏的共性。 物理层到数据链路层扒一扒这些通讯手段的底层原理。 物理层与数据链路层这两个概念&#xff1a; ISO国际标准化组织在上世纪70年代末&#xff0c; 把计算机网络通信的整个框架描述成了一个七层的模型&#xff0c;并称之为OS…

数据备份技术------概述与总结

数据备份技术------概述与总结 数据备份技术------概述与总结备份技术的发展&#xff08;组网方式&#xff09;1、Host备份方式2、LAN备份方式3、LAN-free备份方式&#xff08;SAN&#xff09;4、Server-free备份方式5、Sever-less备份方式 备份技术的发展&#xff08;主流备份…