美文网首页
Python2.7+RobotFramework+Seleniu

Python2.7+RobotFramework+Seleniu

作者: 机智的小阿文 | 来源:发表于2018-07-02 18:28 被阅读0次

前言:1、安装ride要依次安装了“python”、“wxPython”、“robotframework” “robotframework-ride”。后三个安装包在安装时,不要修改安装路径。

2、导入Selenium2Library资源库需要依次安装“decorator”、“selenium”、“Selenium2Library”

3、ride默认打开火狐浏览器,限47.0以下的版本可用。使用chrome浏览器需安装“chromeDriver”。

Ps:文件夹里的都是64位的安装包,如果电脑是32位的,就重新下载一个32位的安装包,下载地址在文档中都有写到。

安装包:https://pan.baidu.com/s/1-9-Zm0XYwExRnBzA6a7rNQ
提取码:7t9f

一、安装python,参考python安装说明文档

详见:https://www.jianshu.com/p/abe5b024a354

二、安装wxPython

1、运行“wxPython2.8-win64-unicode-2.8.12.1-py27.exe”应用程序

注意:最好不要使用wxPython3.0,否则可能会引起ride版本不一致,导致ride无法打开

2、一直点下一步就可以,直到最后安装完成。

3、安装成功后,可能会打开一个“README.win32.txt”记事本,直接关闭记事本就可以

三、安装robotframework

1、运行“robotframework-2.8.7.win-amd64.exe”应用程序

2、一直点击下一步,直到安装完成

3、它默认的安装路径就是python的安装路径(C:\Python27),所以不用担心,直接安装就好。

四、安装ride

1、运行“robotframework-ride-1.5.win-amd64.exe”应用程序

2、一直点击下一步

3、出现提示:是否创建桌面快捷方式时,一定要选择【是】!!!

4、安装成功后,如果出现

“close failed in file object destructor:

sys.excepthook is missing

lost sys.stderr”这些提示文案也不要担心,直接点[完成]就可以了。

5、双击点击桌面的ride图标,可以启动ride,如图:

注意:我们常常会遇到,安装完成RIDE 后,双击桌面的RIDE 不能启动的情况,可能有这几种原因导致:

原因一:RIDE快捷方式目标设置不对导致

我们可以通过右击桌面RIDE 图标,右击->属性:切换到快捷方式。把目标(T)设置成实际路径D:\Python27\pythonw.exe -c "from robotide import main; main()"

或C:\Python27\pythonw.exe -c "from robotide import main; main()"

原因二:由于RIDE 所依赖的wxPython 版本不一致造成的。

重新下载wxPython 2.8.12.1 版本的应用程序并安装

原因三:之前安装python的时候,没有安装“Add Python.exe to Path”组件

卸载python重新安装一下,安装时参考python安装说明文档。

五、安装decorator

1、解压“decorator-4.0.10.tar.gz”至C盘(或其他盘),选择“解压至当前文件夹”

2、进入解压文件夹目录下

3、cmd输入命令python setup.py install

Ps:打开cmd至指定目录简易方法如下

Step1.进入到该目录文件夹下 

Step2.在目录路径下输入cmd,点击回车

----->

六、安装selenium(同上)

1、解压“selenium-2.40.0.tar.gz”至D盘(或其他盘),选择“解压至当前文件夹”

2、进入解压文件夹目录下

3、cmd输入命令python setup.py install

七、安装Selenium2Library(同上)

1、将“robotframework-selenium2library-master”解压至D盘(或其他盘)

2、 进入进入解压文件夹目录下

3、 cmd输入命令:python setup.py install

六、安装IEDriverServer、chromedriver

1、应用程序“IEDriverServer.exe”复制到D:\Python27路径下。

(若之前python是安装在C:\Python27文件夹下的,就把“IEDriverServer.exe”复制到C:\Python27路径下)

2、安装chromeDriver与IEDriverserver方法一样

用于自动化测试时唤起IE浏览器进行测试,可以不安装,默认的是火狐浏览器

------------------------分割线-------------------------------

二、ride工具功能熟悉

1.创建项目测试脚本

(1)创建测试项目                                       

操作:选择菜单栏file----->new Project

Name 输入项目名称。

Type 选择Directory。

(2)创建测试套件

操作:右键点击创建的测试项目文件夹----à选择new Suite选项

Name 输入项目名称。

Type 选择File

(3)创建测试用例

操作:右键点击“测试套件”-------à选择new Test Case

Name  输入用例名称

(4)导入selenium2library库

操作1:左击“测试项目”à点击Libraryà 弹框Name输入Selenium2Library

操作2:左击“测试套件”à点击Libraryà 弹框Name输入Selenium2Library

如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。

图例:

(5)编写用例 

用例编写区:

第一项:输入操作命令

第二项:输入元素定位 (或url 或为空,参考常用命令

第三项及以后:输入该命令需要填写的参数(参考常用命令

输入框颜色变化:

命令颜色变蓝:说明它是一个合法的关键字

红色框:表示这个参数必填

浅灰色框:表示这个参数选填,可填入也可不填

深灰色框:表示这个参数不可填入


2.运行测试用例  

勾选当前需要运行的测试用例,点击工具栏运行按钮▶

如果只运行单个用例的话,也可以切换到用例的Run标签页,点击“▶Start”按钮

运行信息:

运行信息显示会生成三个文件:Output.xml、Log.html、Report.html

Output.xml:输出脚本

Log.html:脚本的执行过程的记录

Report.html:脚本的执行结果的展示

3.导入测试用例

操作:点击打开文件夹->进入脚本存放目录->选中脚本文件(.txt或.robot)->打开


4.封装关键字

(1)创建封装关键字的文件夹

step1:右击文件夹->点击New Suite

step2:选择Directory、TXT->输入文件夹名称->点击【ok】

(2)创建关键字资源库

step1:右击新创建的‘New Resource’文件夹->点击NewResource

step2:输入Name,选择TXT,点击【OK】

Name:最好输入英文,首字母大写,如:Public_resource

(3)资源库导入Selenium2Library库

操作:点击Resource资源库->点击Library->Name输入Selenium2Library->点击ok

备注:与测试用例导入方法一样

(4)创建关键字参数命令及参数定义

step1:右击关键字资源库TXT文件->点击New UserKeyword

step2:填写Name、Argument->点击ok

Name:最好输入英文,首字母大写,如:Login_19lou

Argument:输入参数格式${参数名},多个参数以竖线“|”隔开,如:${username}或${username}|${password}

(5)编写关键字调用用例

此处以登录19楼为例,

${username}、${password}表示此处定义的以后调用时填写的参数


5.调用关键字

(1)导入关键字资源库

操作:点击用例套件->选择【Resource】->点击Browse找到创建的Public_resource.txt->ok

注意:此处导入资源库是点击【Resource】,不是【Library

(2)调用关键字命令

第一项:命令名称(即创建的关键字名称)

第二、三项:输入参数值,参数值输入顺序与参数定义顺序一致

------------------------分割线-------------------------------

三、常用关键字

1. open browser打开浏览器

填写方式:[url |browser=firefox | alias=None | remote_url=False | desired_capabilities=None |ff_profile_dir=None ]

url:打开的连接地址,必填

browser:使用浏览器,默认为火狐,可输入参数修改为其他浏览器

2. Close

Browser关闭浏览器

不需要输入参数

 

3. Input Text 输入文案

填写方式:[locator | text ]

locator:参数定位,如:id=userName 或 Xpath=

//*[@id="userName"]等元素定位方法,参考四、元素定位方法,必填

text:需要输入的文案内容,必填

 

4. Click Element 点击操作

常用于 非 按钮或文字链接 的点击操作,如:下拉框点击展开

填写方式:[locator],只填写元素定位,必填

 

5. Click Link点击文字链接

填写方式:[locator],只填写元素定位,必填

 

6.Click Bottom 点击按钮

填写方式:[locator],只填写元素定位,必填

 

7. Go To 前往url

在浏览器当前打开的页面,跳转到另外的url

填写方式:[url],必填

 

8.Go Back 返回上一页

不需要输入参数

 

9.sleep等待

常用于某一操作需要的响应时间较长时,暂缓下一操作,避免下一操作过快,而影响测试结果。如:登录成功后在跳转到其他页面,登录成功需要一点响应时间,如果直接跳转可能会出错。

填写方式:[time_ | reason=None ]

time:必填,(直接输入数字2,表示等待2秒)

reason:选填

 

10. Select Frame 选中frame框架

常用于页面在frame框架下 嵌套了其他html页面,需要先选中frame框架,才能定位到嵌套内的元素。如:发帖页面的文本输入框

填写方式:[locator],只填写frame框架的元素定位,如:(上图)id=editorIfr

 

11. Unselect Frame 取消选中Frame框架

需要在Frame框架下的html进行的 元素定位操作结束后,添加这个命令

不需要参数

------------------------分割线-------------------------------

四、常用元素定位方法

1. id 定位

编辑格式:id=id的值

如:id=userName

id的值参考该元素信息


2. name 定位

编辑格式:name=name的值

如:name=userName

name的值参考该元素信息


3. xpath定位

(1)直接定位到该元素

编辑方式:Xpath = //标签名[@关键词=’值’] 

如:Xpath =//a[@ttname="wap_1_dh_tchd"]

表示某个层级下,<a>标签下的元素,这个元素有ttname,ttname的值为wap_1_dh_tchd

(2)通过定位到上一级或上上级,来定位该元素

编辑方式:Xpath = //标签名[@关键词=’值’] /标签名

如:xpath = //span[@class=’bg s_ipt_w’]/input或xpath = //form[@id=’form1’]/span/input

(3)同时通过两种关键词定位元素

编辑方式1:Xpath = //标签名[@关键词1=’值1’and@关键词2=’值2’] 

如:Xpath =//a[@id=’kw1’and@name=’wd’]

表示某个层级下,<a>标签下的元素,这个元素有id为kw1且name为wd

编辑方式2:Xpath = //标签名[@关键词1=’值1’or@关键词2=’值2’] 

表示某个层级下,<a>标签下的元素,这个元素有id为kw1或name为wd

(4)通过绝对路径定位元素

编辑方式:Xpath =/标签/标签…

如:Xpath = /html/body/div[1]/div[4]/div[2]/div/form/span[1]/input

注:若有多个相同名称的标签,则标签后用[]注明第几个标签数;div[1]表示body标签下的第1个div标签

Xpath可已通过chrome浏览器获得,右击需要获取Xpath的元素->点击[检查]->开发者工具对应的代码区,右击->选中[Copy]->点击[Copy

Xpath],即可获取到该元素的Xpath和element


4. css定位

在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素

css定位的匹配规则较为复杂,不同选择器有不同的匹配规则。

五、其他特殊情况-补充说明

1.问题:ride强制关闭后,无法正常打开,每次打开就会闪退

原因:ride前置关闭后,仍有部分相关工具未关闭,导致ride无法启动

解决:安装360任务管理器,在360任务管理器中,关闭chromedriver、conhost、pythonw等相关进程

2.问题:ride执行脚本failed后,再执行其他脚本,可能会出现,某个命令后长时间不响应

原因:上一个脚本执行失败后,chromedriver没有正常关闭,再次开启另一个chromedriver会互相影响

解决:停止当前脚本,在360任务管理器中,关闭全部的chromedriver,再重新执行

相关文章

网友评论

      本文标题:Python2.7+RobotFramework+Seleniu

      本文链接:https://www.haomeiwen.com/subject/ymnluftx.html