Robot Framework学习笔记(九)------Selenium2Library库

一、安装selenium2library库

如果已经安装了pip,则使用管理员模式打开windows命令行,输入pip install robotframework-selenium2library,安装完成后在命令行输入pip list查看python的安装列表,列表中出现了robotframework-selenium2library及对应的版本号,说明安装完成。

二、导入selenium2library库

添加完成,黑色示添加的库正常,红色表示库不存。如果为红色,请检查C:\Python27\Lib\site-packages 目录下是否有 Selenium2Library 目录

按F5可调出关键字查询窗口。source选择Selenium2Lilrary,然后输入关键字,点击搜索。选择关键字可以查看关键字的说明

三、第一个例子

比如打开百度,输入一个Open Browser关键字,如果关键字为蓝色说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数不能缺省的。通过说明信息中,我发现它需要一个 url 地址是必填的,当然还需要指定 browser (默认不填为 friefox)

四、元素定位

Web 自动化测试其实就是找到元素(定位元素)并操作元素。

Selenium2Library 提供了非常丰富的定位器:

最常用的其实是id、name、xpath、css。 id 和 name两种定位方式非常简单且实用, xpath 和 css两种定位方式足够强大,可以满足几乎所有定位需求。

1、id和name定位

以百度为例。我们可看到输入框input元素有id和name属性,百度一下按钮有id属性。

输入框:id=kw  name=wd,在 Robot framework 中就是这样写的:

Input text 用于输入框的关键字 ,后面两个参数,一个是元素的定位,一个是输入框输入的值。

百度一下按钮:id=su,在 Robot framework 中就是这样写的:

click button用户点击按钮的关键字,后面跟着一个必填参数。

2、xpath定位

XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现,所以 selenium用户可是使用这种强大语言在 web 应用中定位元素。如果一个元素没有id和name或没有唯一标识可以使用xpath 通过层级关系找到元素。

(1)xpath绝对路径

比如百度页面的搜索输入框xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input。绝对路径的用法往往是在我们迫不得已的时候才用的。大多时候用相对路径更简便

(2)xpath的相对路径

使用元素本身定位:比如百度页面的搜索输入框xpath=//*[@id="kw"],可以利用元素自身的属性。//表示某个层级下,*表示某个标签名。@id=kw表示这个元素有个 id 等于 kw

当然,一般也可以制定标签名:xpath=//input[@id="kw"]元素本身,可以利用的属性就不只局限为于 id 和 name ,如:Xpath = //input[@autocomplete=’off’],但要保证这些元素可以唯一的识别一个元素。

找上级:如果一个元素找不到可以先找到他的上级。比如:xpath = //span[@class=‘bg s_btn_wr’]/input,如果父级没有唯一标识,还可以继续往上找:

xpath = //form[@id=’form1’]/span/input

布尔值写法:

Xpath = //input[@id=’kw1’ and @name=’wd’]

总结:使用过程中发现xpath定位有时候语法并没有任何问题也定位不到元素,比如xpath = //span[@class=‘bg s_btn_wr’]/input。

3、css 定位

CSS(Cascading Style Sheets)是一种语言,它被用来描述 HTML 和 XML 文档的表现。CSS 使用选择器来为页面元素绑定属性。这些选择器可以被 selenium 用作另外的定位策略。CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比 XPath 快。
CSS 选择器的常见语法:

五、Selenium2Library 常用关键字

1、浏览器驱动

open browser也可以打开本地的文件,比如:

2、关闭浏览器

(1)关闭当前页面

(2)关闭所有页面

3、浏览器最大化

4、设置浏览器窗口宽、高

5、获取浏览器窗口尺寸

6、文本输入

7、点击元素

8、等待元素出现

Arguments:[ locator | timeout=None | error=None ],Xpath=//* [@] :表示元素定位,这里定位出现的元素。42 : 表示最长等待时间。Error : 表示错误提示,自定义错误提示,如:“元素不能正常显示”

9、获取 title

Returns title of current page.我们通常会将获取的 title 传递给一个变量,然后与预期结果进行比较。从而判断当前脚本执行成功

 10、获取元素的text

Arguments:[ locator ],Returns the text value of element identified by `locator`.

11、获取元素的属性值

[email protected]:id=kw 表示定位的元素。@nam 获取这个元素的 name 属性值。

 12、cookei 处理

get cookies 获得当前浏览器的所有 cookie 。
get cookie value 获得 cookie 值。key_name 表示一对 cookie 中 key 的 name 。
add cookie 添加 cookie。添加一对 cooke (key:value)
delete cookie 删除 cookie。删除 key 为 name 的 cookie 信息。
delete all cookies 删除当前浏览器的所有 cookies。

 13、验证should contain 

例子:先获取页面的title,赋值给${tt};然后去对比是否等于百度一下你就知道了。

14、表单嵌套

15、下拉框选择

Arguments:[ locator | *values ]。 locator 为定位下拉框;Vlaue 为选择下拉框里的属性值。

16、执行 JavaScript

Execute Javascript 关键字用于使用 JavaScript 代码,参数就是JavaScript 代码

时间: 2024-10-10 23:15:16

Robot Framework学习笔记(九)------Selenium2Library库的相关文章

Robot framework学习笔记

注意点: 1 可以通过最近的id寻找子集绝对路径 2 注意click element和click button 3 遇到页面跳出蒙版,遮挡住选择的元素时,可以通过将屏幕最大化暂时解决 4 遇到找不到对应元素时,有时候需要sleep一段时间,等待页面元素全部加载完成. open browser    http://ct.fat4.qa.nt.ctripcorp.com/m    chrome sleep    5 click element    xpath=//div[@id='app-ad']

robot framework学习笔记之三—Scalar变量

一.变量赋值 1)Set赋值 通常使用Set Variable关键字对变量进行赋值,其他Set相关的带Variable的关键字也可以进行赋值 赋值的时候,变量后面写不写『=』都可以,如下: 如果${vara}的值和abcd字符串相等,就赋值321给${varc};如果不相等则赋值678 2)Get赋值 主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值,如下: 第一个例子是获取变量${vara}的长度,第二个例子是获取时间 二.变量使用 1)在判断中使用 如果${vara1}和jay字

Linux System Programming 学习笔记(九) 内存管理

1. 进程地址空间 Linux中,进程并不是直接操作物理内存地址,而是每个进程关联一个虚拟地址空间 内存页是memory management unit (MMU) 可以管理的最小地址单元 机器的体系结构决定了内存页大小,32位系统通常是 4KB, 64位系统通常是 8KB 内存页分为 valid or invalid: A valid page is associated with an actual page of data,例如RAM或者磁盘上的文件 An invalid page is

初探swift语言的学习笔记九(OC与Swift混编)

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation class Act : NSObject { func hasAct(tag:Int) -> String { swit

[学习笔记] Python标准库简明教程 [转]

1 操作系统接口 os 模块提供了一系列与系统交互的模块: >>> os.getcwd() # Return the current working directory '/home/minix/Documents/Note/Programming/python/lib1' >>> os.chdir('~/python') # Change current working directory Traceback (most recent call last): File

APUE 学习笔记(九) 高级I/O

1. 非阻塞I/O 低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用: (1)某些文件类型你(网络socket套接字.终端设备.管道)暂无可使用数据,则读操作可能会使调用者永远阻塞 (2)如果数据不能立即被(1)中文件类型接受,则写操作会使调用者永远阻塞 (3)某些进程间通信函数 非阻塞I/O使我们可以调用open.read.write这样的I/O操作,并使这些操作不会永远阻塞,如果这种操作不能完成,则调用立即出错返回 对于一个给定的文件有两种方法对其指定非阻塞I/O: (1)调用

[学习笔记] Python标准库的学习准备 [转]

Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准库所涉及的应用很广,所以需要学习一定的背景知识. 硬件原理 这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念.这些内容基础而重要. Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能. 操作系统 在了解操作系统时,下面是重点: 1) 操作系统的进程管理,比如什么是UID, PID, daemon 2) 进程之间

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

angular学习笔记(九)-css类和样式3

再来看一个选择li列表的例子: 点击li中的任意项,被点击的li高亮显示: <!DOCTYPE html> <html ng-app> <head> <title>6.3css类和样式</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="scri