首页 > 其他分享 >Web自动化测试04:Selenium-XPath、CSS定位

Web自动化测试04:Selenium-XPath、CSS定位

时间:2023-01-23 12:01:54浏览次数:30  
标签:XPath Web 层级 04 定位 元素 html 属性



文章目录

  • ​​系列文章目录​​
  • ​​学习目标​​
  • ​​一、什么是XPath?​​
  • ​​二、XPath定位策略(方式)​​
  • ​​2.1 路径定位(绝对路径、相对路径)​​
  • ​​2.2 利用元素属性​​
  • ​​练习​​
  • ​​2.3 属性与逻辑结合​​
  • ​​练习​​
  • ​​2.4 层级与属性结合​​
  • ​​练习​​
  • ​​2.5 XPath-延伸​​
  • ​​2.6 XPath总结​​

学习目标

我们web自动化的内容,一共分为七个模块。今天开始第二章的学习,Selenium-API操作相关内容。
如果!还有朋友没有掌握Python基础,大家移步到我们的Python专栏进行学习。

本文学习目标:

1.掌握XPath定位策略
2.掌握CSS定位策略

为什么要学习XPath、CSS定位?

1.如果要定位的元素没有id、name、class属性,该如何进行定位?
2.如果通过name、class、tag_name无法定位到唯一的元素,该如何进行定位?

示例:


一、什么是XPath?

1.XPath即为XML Path的简称,它是一门在 XML 文档中查找元素信息的语言。
2.HTML可以看做是XML的一种实现,所以Selenium用户可以使用这种强大的语言在Web应用中定位元素。

XML:一种标记语言,用于数据的存储和传递。 后缀.xml结尾

<?xml version="1.0" encoding="UTF-8" ?>
<node>
<db id="db" desc="三条边的长度都一样">
<b1>3</b1>
<b2>3</b2>
<b3>3</b3>
<expect>等边三角形</expect>
</db>
<dy>
<b1>4</b1>
<b2>4</b2>
<b3>5</b3>
<expect>等腰三角形</expect>
</dy>
</node>

XPath定位方式之所以强大,是因为它有非常灵活的定位策略

二、XPath定位策略(方式)

1.路径-定位
2.利用元素属性-定位
3.属性与逻辑结合-定位
4.层级与属性结合-定位

XPath定位方法

element = driver.find_element_by_xpath(xpath)

2.1 路径定位(绝对路径、相对路径)

绝对路径:从最外层元素到指定元素之间所有经过元素层级的路径

1).绝对路径以/html根节点开始,使用/来分隔元素层级; 如:/html/body/div/fieldset/p[1]/input
2).绝对路径对页面结构要求比较严格,不建议使用

相对路径:匹配任意层级的元素,不限制元素的位置
1).相对路径以//开始
2).格式://input 或者 //*

练习

需求:打开注册A.html页面,完成以下操作
1).使用绝对路径定位用户名输入框,并输入:admin
2).暂停2秒
3).使用相对路径定位用户名输入框,并输入:123

2.2 利用元素属性

说明:通过使用元素的属性信息来定位元素
格式://input[@id=‘userA’] 或者 //*[@id=‘userA’]

练习

需求:打开注册A.html页面,完成以下操作
1).利用元素的属性信息精确定位用户名输入框,并输入:admin

2.3 属性与逻辑结合

说明:解决元素之间个相同属性重名问题
格式://*[@name=‘tel’ and @class=‘tel’]

练习

需求:打开注册A.html页面,完成以下操作
1).使用属性与逻辑结合定位策略,在test1对应的输入框里输入:admin

2.4 层级与属性结合

说明:如果通过元素自身的信息不方便直接定位到该元素,则可以先定位到其父级元素,然后再找到该元素
格式://*[@id=‘p1’]/input

练习

需求:打开注册A.html页面,完成以下操作
1).使用层级与属性结合定位策略,在test1对应的输入框里输入:admin

2.5 XPath-延伸

Web自动化测试04:Selenium-XPath、CSS定位_前端

2.6 XPath总结

要知道XPath定位策略有哪些


标签:XPath,Web,层级,04,定位,元素,html,属性
From: https://blog.51cto.com/u_8238263/6021844

相关文章

  • Web前端画布元素的技巧速成
    画布(canvas)是HTML5中新增加的一个非常重要的元素,使用它的API,我们可以通过绘制的方式实现图形、线条和文字的显示。1.   目标使用画布元素,快速绘制一个中小学教学使用的工......
  • Nginx+Keepalived实现web服务器高可用
    1、Nginx业务背景现公司需求快速搭建web服务器,对外提供给用户web服务。需求拆分需要基于http协议的软件,搭建服务实现介绍  常见用法:1)web服务器软件httpdhttp协议同类......
  • 读函数式编程思维笔记04_语言与范式_模式与重用
    1. 语言的分类1.1. 静态类型1.1.1. 要求我们事先指定变量和函数的类型1.2. 动态类型1.2.1. 允许推迟指定类型1.3. 强类型1.3.1. 变量“知道”自己的类型1.3......
  • javaweb基础知识梳理
    1、javaweb模型 java的代码是在内存里的,比如Array、LIst、Map这就意味着在这些容器中存储的数据都是临时的,重启java程序之后数据进入新的生命周期。这种程序也有,比如计......
  • Day04-if分支+循环语句
    一、if判断语句1、语句结构if条件语句:    满足条件运行的代码1    满足条件运行的代码22、if嵌套结构if条件语句1:  满足条件运行的代码1满足条件运......
  • 17个面向Web 开发人员的杀手级网站,值得你收藏
    保持网站方便可能是最终的生产力技巧,以下是我用来让我的生活更轻松的一些最好的网站。让我们一起来看看它们。1、图片API地址:https://source.unsplash.com/世界上最强大的......
  • 04 命令行传参
    命令行传参代码注释是我在后面才添加的packagecom.zhan.base_3;publicclassTest04{//命令行传递参数publicstaticvoidmain(String[]args){......
  • 性能测试-第04天-掌握Jmeter直连数据库
    文章目录​​系列文章目录​​​​......
  • HTML5 WEB SQL 无法创建数据表的问题
    不知是什么原因,反复试,最后发现是数据表的某一列的字段用的是'check',把它改了后,就一切顺利了:无法创建数据表:db.transaction(function (tx) {       ......
  • 04 if选择结构
    if选择结构equals()方法只能用来比较字符串?==是判断两个变量是不是指向同一个内存空间,equals是判断两个变量值是不是相同packagecom.zhan.base_2;importjava.u......