最常用的有id、name、XPath、CSS这4种,其中id和name两种定位方法最为简单实用,这两个属性具有惟一性,但并非所有元素都会存在这两个属性。如果元素没有id和name属性,一般就会采用XPath和CSS定位方法。
XPath和CSS两种定位方法几乎可以满足所有Web项目的定位需求。
XPath是一种在XML文档中定位元素的标记语言。
XPath查找定位元素的几种常见写法如下:
示例:XPath = /html/body/div[2]/div[2]/div[1]/input 查找html下的body下面的div下面的…input标签,通过一级一级地找到想要的元素。绝对路径的写法往往是在我们迫不得已的时候才会采用的。
XPath相对路径结合元素自身属性来进行定位,例如百度搜索输入框 XPath=//*[@id=“kw”],其中//表示某个层级下,*表示在某个标签名。@id=kw表示这个元素的id等于kw,是它自身的属性。
一般也可以指定标签名,例如 XPath=//input[@id=“kw”]。
能用到的属性也不只局限为于id和name,例如XPath=//input[@value=“1”]。
当一个元素自身的属性无法唯一识别它的时候,可以先找到它的上级元素,例如 XPath=//span[@ class=“bg btn”]/input。如果父级元素也无法唯一标识,还可以继续往上找,例如XPath=//form[@id=“form”]/span/input。
通过多种属性组合的形式来定位元素,
例如 XPath=//input[@id=“kw” and @name=“wd”] 或者XPath=//input[@id=“kw” or @name=“wd”]。
CSS是一种样式语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性,这些选择器可以被Web自动化测试用来定位元素。CSS可以灵活地选择控件中的任意属性,并且在一般情况下定位速度要比 XPath快。
常用的CSS选择器
选择器 | 示例 | 示例说明 |
---|---|---|
.class | .intro | 选择class="intro"的所有元素 |
#id | #name | 选择id="name"的元素 |
* | * | 选择所有元素 |
element | p | 选择<p>元素 |
element,element | div,p | 选择所有<div>元素和所有<p>元素 |
element element | div p | 选择<div>元素内部的所有元素 |
element>element | div>p | 选择父元素为<div>元素的所有元素 |
element+element | div+p | 选择紧接在<div>元素之后的所有<p>元素 |
[attribute] | [target] | 选择带有target属性的所有元素 |
[attribute=value] | [target=_blank] | 选择target=_blank的所有元素 |
[attribute~=value] | [title~=flower | 选择title属性包含单词flower的所有元素 |
[attribute |=value] | [lang |=en] | 选择lang属性值以“en”开头的所有元素 |
示例:
Input Text css=#kw robotframework #根据id定位元素,输入文本框内容
推荐阅读
Robot Framework学习笔记(一)python3+robotframework3.2.1安装
Robot Framework学习笔记(二)变量的定义和使用
Robot Framework学习笔记(三)HTTP接口测试
Robot Framework学习笔记(四)web自动化测试