Web自动化之页面元素定位---Xpath

1. 什么是web自动化?
即网页自动化测试 。通过软件对web对象进行输入数据,单击等操作,比较预期结果和实际结果,包括测试报告 。
2. web自动化为什么需要学习元素定位?
所以需要查找元素对象,需要学习元素定位 。定位当前元素的节点 。
3. 浏览器如何安装定位插件 ?
是一款在浏览器中的定位插件,下载地址为:- 插件下载
打开该网址后选择离线下载,会下载一个.crx的文件 。
离线安装浏览器插件的方法可以参考:离线安装插件教程 - 插件下载
大概步骤为:
(1)首先把从crx4下载的后缀为.crx的文件修改为rar后缀使用压缩工具解压
(2)打开浏览器->(选项->更多工具->扩展程序
(3)先开启开发者模式然后加载已解压的扩展程序
(4)选择之前解压的插件crx目录,就完成安装了
(5)安装成功之后重启浏览器,打开任意界面,按F12,可以找到 选项,以百度页面为例:
4. 以百度页面为例,学习页面元素定位
从百度搜索框HTML代码片段如下:

4.1 使用id进行定位
从百度搜索框HTML代码片段中,发现有一个id="kw"的属性,此时可以通过这个id定位到百度搜索框,定位代码如下:

Web自动化之页面元素定位---Xpath

文章插图
driver.find_element_by_id("kw")
4.2 使用name进行定位
driver.find_element_by_name("wd")
4.3 使用class进行定位
driver.find_element_by_class_name("s_ipt")
4.4 使用进行定位
driver.find_element_by_tag_name("input")
4.5 使用进行定位
driver.find_element_by_link_text("新闻")
4.6 使用进行定位
driver.find_element_by_partial_link_text("新")
4.7 xpath定位举例:
按F12键,打开 插件,选择xpath,具体如下图所示:
xpath元素定位方法有以下几种常见的方法:
(1)绝对路径定位方式:
/html/body/div/div/div[2]/a[1]
以百度页面的 "新闻"链接为例,绝对路径表达式需要从第一层元素标签开始,一层层的定位到我们要定位的元素为止:
(2)相对路径定位方式:
相对路径定位方式,会在整个页面查找符合定位表达式的元素:
Web自动化之页面元素定位---Xpath

文章插图
//input
以下面这段HTML代码为例:

通过id来定位:xpath表达式如下:
//input[@id='kw']
通过class属性来定位:xpath表达式如下:
//input[@class='s_ipt']
使用and关键字进行连接查询:xpath表达式如下:
//input[@type='text' and @name='wd']
【Web自动化之页面元素定位---Xpath】start-with函数:
//a[starts-with(@class,'m')]
函数:
//input[contains(@id,'w')]
text()函数:
//a[text()='直播']
last()函数
//input[last()]//定位最后一个input标签//input[last()-1]//倒数第二个input标签
not()函数
//input[not(@id)] //input标签中不包含id属性值