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…

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;大…

云动态摘要 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…

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

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

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

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

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

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

【PyScript】PyScript 基础入门

【PyScript】PyScript 基础入门 PyScript 是一个为了支持 Python 运行在浏览器的开源平台。 1.PyScript 应用程序的创建 PyScript 程序需要以下三个内容 一个提供给浏览器的 index.html 文件。PyScript 的运行环境描述&#xff0c;通常是一个 pyscript.json 或 pyscript.to…

从零到一打造自己的大模型:模型训练

前言 最近看了很多大模型&#xff0c;也使用了很多大模型。对于大模型理论似乎很了解&#xff0c;但是好像又缺点什么&#xff0c;思来想去决定自己动手实现一个 toy 级别的模型&#xff0c;在实践中加深对大语言模型的理解。 在这个系列的文章中&#xff0c;我将通过亲手实践…

入门篇:创建和运行Hello World

DevEco Studio安装完成后&#xff0c;可以通过运行Hello World工程来验证环境设置是否正确。接下来以创建一个支持Phone设备的工程为例进行介绍。 创建一个新工程 打开DevEco Studio&#xff0c;在欢迎页单击Create Project&#xff0c;创建一个新工程。根据工程创建向导&…

硬件开发笔记(二十二):AD21软件中创建元器件AXK5F80337YG原理图库、封装库和3D模型

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140007117 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

EE trade:贵金属投资的优点及缺点

贵金属(如黄金、白银、铂金和钯金)一直以来都是重要的投资和避险工具。它们具有独特的物理和化学特性&#xff0c;广泛应用于各种行业&#xff0c;同时也被视为财富储备。在进行贵金属投资时&#xff0c;了解其优点和缺点对于做出明智的投资决策至关重要。 一、贵金属投资的优…

240万亿巨量数据被洗出,足够训出18个GPT-4!全球23所机构联手,清洗秘籍公开

是时候把数据Scale Down了&#xff01;Llama 3揭示了这个可怕的事实&#xff1a;数据量从2T增加到15T&#xff0c;就能大力出奇迹&#xff0c;所以要想要有GPT-3到GPT-4的提升&#xff0c;下一代模型至少还要150T的数据。好在&#xff0c;最近有团队从CommonCrawl里洗出了240T数…

算法刷题笔记--二叉树篇

感觉树这一章还是没搞清楚&#xff0c;可能是基础不扎实的缘故&#xff0c;学完C巩固底层知识后二刷 理论基础 确定递归函数的参数和返回值 :确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在递归函数里加上这个参数&#xff0c; 并且还要明确每次递归的返回值是什么…

第二证券:美股市场新结算制度:T+2还是T+1?

美股商场新结算制度&#xff1a;T1结算。 从2024年5月28日开端&#xff0c;美国股票生意的结算周期将从之前的T2&#xff08;生意日后两天&#xff09;缩短为T1&#xff0c;即投资者当天卖出的股票&#xff0c;在生意后一个工作日就能收到结算的资金。 例如&#xff0c;假如生…