文章目录
- 系列文章目录
- 学习目标
- 一、什么是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-延伸
2.6 XPath总结
要知道XPath定位策略有哪些