Robot Framweork之UI自动化测试---元素定位的4种方式

在Robot Framweork的UI自动化测试中,元素定位主要有四种,即通过id,name,xpath和CSS定位

一、id定位

id就好比一个人身份证,元素在 HTML 页面中的唯一标识符,因此 ID 定位方式是最常用的方式之一,通过 ID 定位元素简单快捷,且定位速度较快。

使用语法:

二、name定位

name就好比一个人的姓名, 元素的名称属性,相对于 ID,Name 属性可能不是唯一的,因此在使用 Name 定位时需要确保不会定位到多个相同 Name 的元素。

使用语法:

三、xpath定位

xpath有绝对路径和相对路径,大多数情况下都用相对路径,绝对路径不利于维护。

1、绝对路径

绝对路径定位使用完整的路径从根节点开始,直接指定元素在 DOM 树中的位置。绝对路径定位是一种较为精确的定位方式,但也较为复杂,容易受页面结构变化的影响。绝对路径以斜杠 / 开头,指定元素的所有父节点直到根节点的路径。

例如:/html/body/div[1]/div[2]/form/input[3], 这个 XPath 表示定位路径为根节点下的第一个 div,然后在这个 div 下的第二个 div,再在第二个 div 下的 form,最后在 form 下的第三个 input 元素 。

2、相对路径

相对路径定位相对于当前节点或当前节点的某个父节点,更灵活且容易维护。相对路径使用双斜杠 // 开头,表示在整个 DOM 树中查找符合条件的元素。

相对路径定位可以找元素本身或者找上级,下面举例说明:

例如://input[@id='username'], 这个XPath 表示查找整个 DOM 树中的所有 input 元素,并且其中的 id 属性等于 "username" 的元素,这个是找元素本身。

例如://input[@id='username']/span, 这个XPath 表示查找整个 DOM 树中的所有 input 元素,并且其中的 id 属性等于 "username" 的元素下的span元素,这个是通过上机找的例子。

在实际测试中,建议选择相对路径定位,并尽量避免过于复杂的绝对路径定位,以保持测试脚本的可维护性和稳定性。

3、布尔值写法

XPath 支持布尔值写法,用于在 XPath 表达式中进行条件判断和逻辑运算。

例如: //span[text()='John Doe' and @class='name'],查找文本内容为 "John Doe",且 class 属性为 "name" 的 <span> 元素。

//button[@class='submit' or @class='confirm'],查找 class 属性为 "submit" 或 "confirm" 的 <button> 元素。

四、CSS定位

CSS Selector 是一种模式匹配语法,可以通过元素的属性、类名、ID 等来定位元素。以下是一些常用的 CSS Selector 定位示例:

1、通过 ID 定位:

使用 # 符号后跟元素的 ID 来定位。 示例:#username,表示定位 ID 属性为 "username" 的元素。

2、通过 Class 定位:

使用 . 符号后跟元素的 class 名称来定位。 示例:.submit-button,表示定位 class 属性为 "submit-button" 的元素。

3、通过标签名定位:

直接使用元素的标签名来定位。 示例:input,表示定位所有 <input> 元素。

4、通过属性定位:

使用方括号 [attr=value] 来定位具有指定属性和属性值的元素。 示例:input[type="text"],表示定位所有 type 属性为 "text" 的 <input> 元素。

5、通过层级关系定位:

使用空格来表示层级关系,例如 div span 表示定位 <div> 元素下的所有 <span> 元素。 示例:div.form-group input,表示定位 <div> 元素中具有 class 为 "form-group" 的元素下的所有 <input> 元素。

6、通过组合定位:

使用 , 来组合多个 CSS Selector,表示匹配其中任何一个选择器。 示例:input[type="text"], input[type="password"],表示定位所有 type 属性为 "text" 或 "password" 的 <input> 元素。

在实际测试工作中,css的学习成本高一些,所以xpath用到的更多,而且xpath可以直接在浏览器通过F12复制XPATH,简单快捷。

我是程序员馨馨,全网id唯一,转载请注明出处。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Robot Framework是一开源的自动化测试框架,可以用于UI自动化测试。在使用Robot Framework进行UI自动化测试时,可以将测试用例分为多个步骤或模块,并且可以使用重试机制来增强自动化的稳定性。 重试机制可以在自动化中的某一个步骤、整条自动化用例,甚至是某个模块全部的自动化用例中应用。这意味着,如果一个步骤或用例在第一次执行时失败,可以通过重试机制再次尝试执行,以提高测试的稳定性。 要使用Robot Framework进行UI自动化测试,可以使用robotframework-pabot这个库。你可以通过在终端上运行以下命令来安装它: ``` pip install robotframework-pabot ``` 安装完成后,你可以使用pabot来执行并行的UI自动化测试,以加快测试的执行速度。 在默认情况下,如果一个自动化脚本中的某个点击操作失败,Robot Framework会直接报错,并且该条自动化测试用例会被标记为失败。这行为有时会降低自动化的稳定性。因此,在编写自动化脚本时,我们可以通过合理的异常处理和重试机制来增强自动化的稳定性,例如在点击失败后,可以通过重试机制再次尝试点击,以确保测试的准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Robot Framework Selenium UI自动化测试 --- 进阶篇](https://blog.csdn.net/qq_27534003/article/details/87524779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值