Python3+RobotFramework自动化测试五:元素定位
Robot framework中元素的定位通过引入的selenium包,所以,假如我们学过selenium 的话,定位是一样的。
id 和name 定位
使用的前提是id和name的值在当页面上唯一。
如上图是百度的搜索框和搜索按钮,搜索框name=wd,id=k,搜索按钮id=su
在roboot framework中搜索框可以这样写:
Input text 用于输入框的关键字,“robot framework学习”是要给输入框输入的内容。
Input Text
|
name=wd
|
robot framework学习
|
Input Text
|
id=kw
|
robot framework学习
|
搜索按钮可以这样写:
Click Button是按钮点击的关键字
Click Button
|
id=su
|
|
xpath定位
1、xpath的绝对路径
例如百度搜索输入框:
xpath = /html/body/div/div[2]/div[5]/div[1]/div/form/span[1]/input
我们可以从最外层开始找,html下面的body下面的div下面的第4个div下面的....input标签。通过一级一级的锁定就找到了想要的元素
2、xpath相对路径
大多数时候,我们使用xpath相对路径
2.1、元素本身
xpath同样可以利用元素自身的属性:
xpath=//*[@id="kw"]
//表示某个层级下,*表示某个标签名,@id=kw表示这个元素有个id等于kw
上述这种情况也可以指定标签名:
xpath=//input[@id="kw"]
元素本身,可以利用的属性就不只局限于id和name,如:
xpath=//input[@type="text"] xpath=//input[@autocomplete="off"]
需要注意的是,必须要保证这些元素在一个页面上可以唯一识别。
2.2、找上级
我们也可以通过找元素的上级属性来定位我们要找的元素
xpath=//span[@id="s_kw_wrap"]/input
或者
xpath=//form[@id="form"]/span/input
2.3、布尔值写法
如果存在一种情况,同一个页面中id和name都不是唯一的,但是id和name组合之后是唯一的,就可以这样写:
xpath = //input[@id="kw" and @name="wd"]
xpath在robot framework中的写法:
Input Text
|
xpath=//*[@name="wd"]
|
robot framework学习
|
Input Text
|
xpath=//span[@id="s_kw_wrap"]/input
|
robot framework学习
|
Input Text
|
xpath=//form[@id="form"]/span/input
|
robot framework学习
|
CSS定位
css基本选择器:
序号
|
选择器
|
示例
|
含义
|
1
|
.class
|
.abc
|
选择class="abc"的所有元素
|
2
|
#id
|
#firstname
|
选择id="firstname"的所有元素
|
3
|
*
|
*
|
所有元素
|
4
|
element
|
p
|
选择所有<p>元素
|
5
|
element,element
|
div,p
|
选择所有<div>和所有<p>元素
|
6
|
element element
|
div p
|
选择<div>内部所有<p>元素
|
7
|
element>element
|
div>p
|
选择父元素为<div>元素的所有<p>元素
|
8
|
element + element
|
div + p
|
选择紧接在<div>元素之后的所有<p>元素
|
9
|
[attribute]
|
[target]
|
选择带有target属性的所有元素
|
10
|
[attribute=value]
|
[target=_blank]
|
选择target="_blank"的所有元素
|
11
|
[attribute~=value]
|
[title~=flower]
|
选择title属性包含单词"flower"的所有元素
|
12
|
[attribute|=value]
|
[lang|=en]
|
选择lang属性值以“en”开头的所有元素
|
同样用百度首页输入框的代码,看下CSS如何定位元素。
id定位:
css=#kw
class定位:
css=.s_ipt
其他属性:
css=[name=wd] css=[type=text] css=[autocomplete=off]
父子定位:
css=span>input
根据标签定位:
css=input
Robot framework中的写法:
Input Text
|
css=#kw1
|
robot framework学习
|
input text
|
css=.s_ipt
|
robot framework学习
|
input text
|
css=[name=wd]
|
robot framework学习
|
以上都是css简单用法,更多请参考: http://www.w3school.com.cn/cssref/css_selectors.asp