Web自动化元素定位之xpath定位【超详细】

🍅 视频学习:文末有免费的配套视频可观看

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

Web自动化常见的定位方式

为什么要学习定位

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

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

  • 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.绝对路径是以/开始

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

相对路径:从第一个符合条件元素开始(一般配合属性来区分)﹔如//input[@id='kw']

提示:

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

技术栈

  • Python

  • selenium/appium

  • POM分层思想

  • DDT

  • zmail

  • logging

  • yaml/excel

  • requests

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助。

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

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

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

相关文章

Linux文件IO深入剖析

目录 一、文件IO引发的项目血案 1、分析 一、Linux文件系统基本概念 1、文件系统接口 2、文件系统缓存 二、文件IO 访问方式概述 1、标准文件访问方式 2、直接IO 3、实现方式 4、缓存同步 5、Linux 文件IO流程图 6、血案解决 一、文件IO引发的项目血案 事件经过&am…

MTK平台Android13实现三方launcher为默认

一、前言 目前有遇到客户的定制需求,希望使用三方的launcher作为默认的launcher使用,一般情况下直接将三方launcher通过内置到系统并通过overlay机制即可很方便的实现launcher的替换,但是存在一个问题,需要增加ROM的维护成本。本文通过设备在使用前联网通过后台下发三方lau…

MetaGPT全面指南:多代理协作框架的深入解析与应用

文章目录 理解MetaGPT1.1 MetaGPT的基础1.2 MetaGPT的独特之处1.3 MetaGPT在AI领域的应用 MetaGPT的工作原理2.1 训练2.2 微调2.3 推理2.4 多代理协作的概念2.5 如何分配角色给GPTs2.6 复杂任务的完成过程 实际应用3.1 客户支持3.2 内容创作3.3 教育3.4 医疗保健3.5 在企业中的…

自签名的PDF文档证书有法律效力吗?

自签名的PDF文档证书是否具有法律效力&#xff0c;取决于多个因素。以下是对此问题的详细分析&#xff1a; 电子签名的法律效力&#xff1a; 根据《中华人民共和国电子签名法》的规定&#xff0c;电子签名可以作为电子数据&#xff0c;与纸质文件一样具有法律效力。这意味着&a…

【408考点之数据结构】树与二叉树的应用

树与二叉树的应用 一、树与二叉树的基本应用 树和二叉树是数据结构中的重要组成部分&#xff0c;具有广泛的应用。以下是树和二叉树的一些基本应用&#xff1a; 表达式树&#xff1a;用于表示算术表达式&#xff0c;其中叶节点是操作数&#xff0c;内部节点是运算符。霍夫曼…

CAS和AQS 原理

CAS&#xff08;Compare And Swap&#xff09;和AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是并发编程中常用的两种同步机制。以下是它们的原理介绍&#xff1a; CAS&#xff08;Compare And Swap&#xff09; CAS是一种无锁的并发机制&#xff0c;主要用于解决…

Potato(土豆)一款轻量级的开源文本标注工具

项目介绍&#xff1a; Potato 是一款轻量级、可移植的Web文本标注工具&#xff0c;被EMNLP 2022 DEMO赛道接受。它旨在帮助用户快速地从零开始创建和部署各种文本标注任务&#xff0c;无需复杂的编程或网页设计。只需简单配置&#xff0c;团队即可在几分钟内启动并运行标注项目…

【论文速读】| LLAMAFUZZ:大语言模型增强的灰盒模糊测试

本次分享论文&#xff1a;LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing 基本信息 原文作者&#xff1a;Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen 作者单位&#xff1a;University of California, Davis 关键词&#xff1a;模糊测试&#xff0c;大…

SQL面试题练习 —— 合并用户浏览行为

目录 1 题目2 建表语句3 题解 1 题目 有一份用户访问记录表&#xff0c;记录用户id和访问时间&#xff0c;如果用户访问时间间隔小于60s则认为时一次浏览&#xff0c;请合并用户的浏览行为。 样例数据 ------------------------ | user_id | access_time | ---------------…

云动态摘要 2024-06-27

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新产品更新 veLinux 2.0 镜像邀测发布 火山引擎 2024-06-26 veLinux 2.0 镜像邀测发布 ECS支持100台实例批量续费/退订 火山引擎 2024-06-26 ECS支持100台实例批量续费/退订 弹性伸缩支持目标追踪规则(邀测) …

花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?

我就是从培训机构学的网络安全&#xff0c;线下五六个月&#xff0c;当时学费不到一万&#xff0c;目前已成功入行。所以&#xff0c;只要你下决心要入这一行&#xff0c;过程中能好好学&#xff0c;那这8000就花得值~ 因为只要学得好&#xff0c;工作两个多月就能赚回学费&am…

Shell (一)Ubuntu的网络配置及软件安装

Ubuntu的配置及软件安装 网络配置 虚拟机提供的网络类型 桥接模式 主机和虚拟机分别拥有不同的ip地址&#xff0c;可以实现和外界设备通信 NAT模式 也可以联网&#xff0c;但是和主机共用同一个ip地址&#xff0c;外界无法识别虚拟机和主机发送的信息 仅主机模式 虚拟机不可…

数据资产与人工智能的融合之路:探讨如何结合AI技术优化数据资产管理,提升企业智能化水平

目录 一、引言 二、数据资产管理的现状与挑战 1、数据资产管理的重要性 2、数据资产管理的挑战 三、人工智能在数据资产管理中的应用 1、数据采集与整合 2、数据清洗与校验 3、数据安全与隐私保护 4、数据分析与挖掘 四、结合AI技术优化数据资产管理的策略 1、制定数…

【stm32-新建工程-HAL库版本】

stm32-新建工程-HAL库版本 ■ 1. 下载STM32Cube官方固件包&#xff08;F1/F4/F7/H7&#xff09;■ 2. 新建HAL库版本MDK工程所需的文件夹■ 2.1 新建工程文件- XXX项目并在下面新建如下文件夹■ 2.2 向Drivers文件添加如下文件■ 2.3 向Mrddlewares文件添加文件■ 2.4 设置Outp…

python--jiaba库的基本使用

jieba 是一个用于中文分词的 Python 库。它使用基于统计的词典分词方法&#xff0c;能够支持三种分词模式&#xff1a;精确模式、全模式、搜索引擎模式&#xff0c;并且支持繁体分词和自定义词典。 以下是 jieba 库的基本使用步骤&#xff1a; 安装 首先&#xff0c;你需要安…

一篇文章带你玩懂数据库的基础函数

数据库的函数 单行函数1.数据函数2.字符串函数3.时间函数4.流程函数 多行函数聚合函数 阅读指南&#xff1a; 本文章讲述了对于数据库的单行和多行函数&#xff0c;如果读者感兴趣&#xff0c;后续我们会更新高级的操作在我们的对于数据库教程的合集中&#xff0c;大家可以来很…

唐兴通:银行金融数字化转型营销客户销售个金对公讲师培训师

唐兴通 数字化转型顾问、金融产品营销专家、数字化销售增长教练、沃顿商学院演讲嘉宾。全球创新增长战略大家EM罗杰斯&#xff08;创新的扩散&#xff09;、杰弗里摩尔&#xff08;跨越鸿沟&#xff09;、亨利切萨布鲁夫&#xff08;开放式创新&#xff09;在中国合作者。《中…

服务接口请求 CORS跨域漏洞修复

通过nginx去对Origin请求头的来源地址去做逻辑处理&#xff0c;不在白名单内返回403 具体配置 location / {set $flag 0;if ($http_origin ){set $flag "${flag}1";}if ($http_origin !~* ^(http|https)://www\.abc\.com$){set $flag "${flag}1";}if ($f…

一位OpenAI大模型训练工程师繁忙的一天

早晨&#xff1a;迎接新的一天 7:00 AM - 起床 早晨七点起床。洗漱、吃早餐后&#xff0c;查看手机上的邮件和公司消息&#xff0c;以便提前了解今天的工作安排和任务优先级。 7:30 AM - 前往公司 乘坐地铁前往位于旧金山的OpenAI总部。在地铁上习惯性地阅读一些与人工智能和…

秋招倒计时?到底需要准备到什么程度?

秋招倒计时&#xff1f;需要准备到什么程度&#xff1f; 秋招&#xff0c;面向全国的毕业生&#xff0c;招聘的激烈程度可想而知&#xff01;按照往年时间&#xff0c;秋招通常从八月初开始&#xff0c;九月黄金期&#xff0c;十月中后期。距今刚好差不多60天&#xff0c;时间其…