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

本文介绍了web自动化测试的基本概念,解释了为何需要学习元素定位,并详细阐述了如何在Chrome浏览器中安装RanorexSelocity插件。此外,还提供了百度页面作为示例,展示了多种常用的元素定位方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是web自动化?

即网页自动化测试。通过软件对web对象进行输入数据,单击等操作,比较预期结果和实际结果,包括测试报告。

2. web自动化为什么需要学习元素定位?

  • 计算机没有智能到人的程度。     
  • 计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入 
  • 计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)

所以需要查找元素对象,需要学习元素定位。定位当前元素的节点。

3. chrome浏览器如何安装定位插件Ranorex Selocity?

Ranorex Selocity是一款在chrome浏览器中的定位插件,下载地址为:Ranorex Selocity - Crx4Chrome插件下载

打开该网址后选择离线下载,会下载一个.crx的文件。

 离线安装chrome浏览器插件的方法可以参考:离线安装chrome插件教程 - Crx4Chrome插件下载

大概步骤为:

(1)首先把从crx4下载的后缀为.crx的文件修改为rar后缀使用压缩工具解压

(2)打开chrome浏览器 ->(选项->更多工具->扩展程序

(3)先开启开发者模式然后加载已解压的扩展程序

(4)选择之前解压的chrome插件crx目录,就完成安装了

(5)安装成功之后重启chrome浏览器,打开任意界面,按F12,可以找到Ranorex Selocity选项,以百度页面为例:

 

4. 以百度页面为例,学习页面元素定位

从百度搜索框HTML代码片段如下:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" style="">

4.1 使用id进行定位

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

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 使用tagName进行定位

driver.find_element_by_tag_name("input")

4.5 使用linkText进行定位

driver.find_element_by_link_text("新闻")

4.6 使用partialLinkText进行定位

driver.find_element_by_partial_link_text("新")

4.7 xpath定位举例:

按F12键,打开Ranorex Selocity插件,选择xpath,具体如下图所示:

 xpath元素定位方法有以下几种常见的方法:

(1)绝对路径定位方式:

/html/body/div/div/div[2]/a[1]

以百度页面的 "新闻"链接为例,绝对路径表达式需要从第一层元素标签开始,一层层的定位到我们要定位的元素为止:

 (2)相对路径定位方式:

相对路径定位方式,会在整个页面查找符合定位表达式的元素:

//input

  •  通过元素属性来定位:

以下面这段HTML代码为例:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" style="">

通过id来定位:xpath表达式如下:

//input[@id='kw']

通过class属性来定位:xpath表达式如下:

//input[@class='s_ipt']

使用and关键字进行连接查询:xpath表达式如下:

//input[@type='text' and @name='wd']

  •  通过部分属性值来定位--模糊定位:

start-with函数:

//a[starts-with(@class,'m')]  

contains函数:

//input[contains(@id,'w')] 

text()函数:

//a[text()='直播'] 

last()函数

//input[last()]     //定位最后一个input标签
//input[last()-1]   //倒数第二个input标签

not()函数

//input[not(@id)] //input标签中不包含id属性值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值