RF关键字定位元素详解

定位示例

RF关键字 定位 内容
Input Text id=kw1 robotframework
Input Text name=wd robotframework
Click Button id=su1  
Input Text css=[name=wd] rf
Input Text xpath = //span[@class=’bg s_ipt_w’]/input  

Xpath定位

  定位 讲解
Xpath绝对路径 xpath=/html/body/div[1]/div[4]/span[1]/input  
Xpath相对路径 xpath=//*[@id='kw1'] 某个层级下,属性为id=kw1的元素
  xpath=//input[@type='text'] 标签名为input的且属性type=text的元素
  xpath = //form[@id=’form1’]/span/input 根据容易定位的上级元素开始找
  xpath = //input[@id=’kw1’ and @name=’wd’] 同时拥有两个属性的标签
  xpath = //input[@id=’kw1’ or @name=’wd’] 拥有属性A的标签或者拥有属性B的标签

CSS定位

选择器 例子 讲解
.class .intro 选择class=”intro“的所有元素
#id #firstname 选择id="firstname"的所有元素
* * 选择所有元素
element p 选择所有<p>元素
element,element div,p 选择所有<div>元素和所有<p>元素
element element div p 选择 <div> 元素内部的所有 <p> 元素
element>element div>p 选择父元素为 <div> 元素的所有 <p> 元素
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" 开头的所有元素

selenium2library的API

关键字 输入的值 操作平台 其他   备注
Open Browser 完整的url chrome    

chrome:googlechrome/gc/chrome

IE:internetexplorer/ie

firefox:ff/firefox

Opera:opera

Android:android

Iphone:iphone

Safari:safari

要想通过不同的浏览打开URL地址,一定要安装浏览器相对应的驱动。如chrome 的驱动:

chromedriver.exe 等。浏览器默认为空时启动FireFox

 Close Browser          关闭浏览器
 Close All Browsers          关闭所有浏览器
 Maximize Browser Window          使当前打开的浏览器全屏
 Get Window Size  800  600      以像素为单位,第一个参数800表示宽度,第二个参数600表示高度
 Input Text  Xpath=//* [@]  输入信息      文本输入
 Click Element  Xpath=//* [@]       点击元素 
 Click Button  Xpath=//* [@]       点击按钮
choose file xpath=//* [@] C:\Do\bug5.png     上传图片文件
 Comment  注释说明       注释一
 # 注释说明         注释二 
 Sleep 42       

固定休眠多长时间,以“秒”为单位

2 minutes 10 seconds 表示2分10秒

 Wait Until Page Contains Element  Xpath=//* [@]  42 error  

 Xpath=//* [@] :表示元素定位,这里定位出现的元素,42表最大等待时间

error表示自定义错误提示,如:元素不能正常显示

 Get Title          获得当前浏览器窗口的title 信息
 Get Text  Xpath=//* [@]        获取文本信息,定位文本信息的元素
 Get Element Attribute  id=kw@name        获取元素元素属性值,id=kw 表示定位的元素。@nam 获取这个元素的name属性值
 get cookies          获得当前浏览器的所有cookie
 get cookie value  Key_name        获取cookie的值,key_name 表示一对cookie中key的name
 delete cookie Key_name         删除cookie,删除key为name 的cookie信息
 delete all cookies          删除当前浏览器的所有cookie
add cookie Key_name Value_name     添加一对cooke (key:value)
${a} Set Variable hello     定义变量a为hello
${a} ${b} Set Variable hello world 定义变量a为hello ,b为world 
log ${a}       在测试报告中输出a变量的值
${width} ${height} get window size     获得浏览浏览器窗口宽、高,通过log 将宽高,打印到报告中
log ${width}        
log ${height}        

selenium2library的API高级

          备注
验证          
open browser http://www.baidu.com chrome     Open Browser 通过chrome打开百度首页
${title} Get Title       Get Title 获得浏览器窗口的titile ,并赋值给变量${title}
Should Contain ${title} 百度一下,你就知道     Should Contain 比较${title}是否等于“百度一下,你就知道”
嵌套          
Select Frame Xpath=//* [@]        进入表单,Xpath=//* [@] 表示定位要进入的表单
Unselect Frame         退出表单
下拉框          
Unselect From List By Value Xpath=//* [@] vlaue     定位下拉框,Vlaue 选择下拉框里的属性值
IF分支语句          
${a}  Set variable 2     定义两个变量a ,b 分别为 2 和5 
${b} Set variable 5      
run keyword if ${a}>=1 log a大于1   If 判断 a 大于等于1 ,满足条件log 输出 “a大于1 ”
... ELSE IF ${b}<=5 log b小于等于5 不满足上面的条件,接着else if 判断b小于等于5 ,满足条件log 输出 “b小于等于5”
... ELSE log 上面两个条件都不满足   上面两个条件都不满足,else  log输出“上面两个条件都不满足”
for循环语句          
:FOR ${i} in range 10   循环变量i 从0 到9 循环10次
  log ${i}     输出到log
for循环语句          
@{a} create list aaa bbb  

@{a} 定义为一个字符串列表。通过in 可遍历非整型(in range)

:FOR ${i} in @{a}   Log 、if 分支,for 循环并非selenium关键字库的提供的方法,是由BuiltIn包提供
  log ${i}      

 关键字驱动

如“open browser” 就是一个关键字。从底层去看它就是一个通过编程去现实的一个方法。

def  open_browser(url,browser):
#通过browser找到相应的浏览器驱动,调用浏览器,借助python的httplib、urllib模块将url传递给浏览器。从而实现open brwoser 的目的。
上面的伪代码表述的“关键字”的底层其实还是程序定义的方法。
把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。
定位单个元素 定位多个元素
find_element_by_id find_elements_by_name
find_element_by_name find_elements_by_xpath
find_element_by_xpath  
find_element_by_link_text  
find_element_by_partial_link_text  
find_element_by_tag_name  
find_element_by_class_name  
find_element_by_css_selector  

size 获取元素的尺寸
text 获取元素的文本
get_attribute(name) 获取属性值
location 获取元素坐标,先找到要获取的元素,再调用该方法
page_source 返回页面源码
driver.title 返回页面标题
current_url 获取当前页面的URL
is_displayed() 设置该元素是否可见
is_enabled() 判断元素是否被使用
is_selected() 判断元素是否被选中
tag_name 返回元素的tagName


set window size :设置浏览器宽、⾼
get window size :获取浏览器宽、⾼
go back :浏览器进⾏回退操作
reload page:页面重新加载,即页面刷新操作
get title:获取当前浏览器窗⼝的标题
get location:获取当前URL?

原文地址:https://www.cnblogs.com/boosli/p/14914534.html