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
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2020-05-20 09:39  阳光倾林  阅读(518)  评论(0编辑  收藏  举报