引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面。
之前一直使用Selenium2Library的0.5.2版本,现在官方推出了1.0.0版本,本人在升级过程中遇到了很多的问题,于是痛下决心要搞定他,终于搞了几天摸清楚了根本问题,解决了升级后无法加载的问题。
补充一个问题:1.0.0版本的select window在处理模态对话框的时候无法起作用。。。
解决办法(感谢FIGESZ和吴穹博士的指导):
修改webdrivermonkeypatches.py文件中的:
[python] view plaincopyprint?
#atts = self.execute_script("return [ window.id, window.name, document.title, document.location ];")
atts = self.execute_script("return [ window.id, window.name, document.title, document.url ];")
#atts = self.execute_script("return [ window.id, window.name, document.title, document.location ];")
atts = self.execute_script("return [ window.id, window.name, document.title, document.url ];")
吴博对此的解读是S2L1.0.0是基于FF的,在IE的处理上这里就算一个bug了。所以其实吴博在给我们的0.5.2版本里也做了同样的修改的。
我这里先给出解决方案吧,有兴趣的同志们可以看看另一篇的解决过程。
==解决方案==
1、针对已经安装0.5.2版本的朋友,把python27\Lib\site-packages目录下的Selenium2Library目录删除,然后继续第2步。如果没有安装过,请从第2步开始。
(其实不删除应该也是可以的,因为1.0.0用了easy_install)
2、到官网上下载1.0.0版本的源码包,地址:https://github.com/rtomac/robotframework-selenium2library
注意下载的时候选择ZIP下载,不要去下Download里面的,那里面都是坑爹的
。。。
另外,注意到ZIP左下方的branch了么?这个是master,他的主分支,如果你需要iframe支持的话,建议选择branch下面的iframe分支,选择之后也是点ZIP来下载。
总之就是下面这2个文件了,选择你想安装的进行解压缩。(区别就是master的对iframe不支持,只支持frame,当然,你也可以自己来修改成支持的,或者使用iframe分支)
3、接下来是一个特殊选择:
如果你的电脑可以正常连接外网——我指的是这些python和selenium的官方网站——那你完成这步就可以了
。如果是公司局域网无法访问外网,那么就请跳过此步,直接看第4步了
。如果你不确定是否能联网,那么在执行install有报错说无法获取url的那就是你没法访问了,也请看第4步。
把你需要的那个版本的ZIP文件解压缩后,到命令行进入解压的目录,执行python setup.py install即可。他会联网下载缺少的内容。
首先会下载setuptools-0.6c11-py2.7.egg,他是后面一切安装的基础。
setuptools安装成功之后会下载4个依赖库,在src目录下的egg.info目录里,有一个requires.txt里面有如下内容
[plain] view plaincopyprint?
decorator >= 3.3.2
selenium >= 2.8.1
robotframework == 2.6.3——注:因为我本机已经安装RF,所以他不再下载
docutils >= 0.8.1
decorator >= 3.3.2
selenium >= 2.8.1
robotframework == 2.6.3——注:因为我本机已经安装RF,所以他不再下载
docutils >= 0.8.1
他会自动匹配最合适的版本进行下载,最终完成后,你可以在python27\Lib\site-packages目录下找到相关的目录,都是.egg结尾的目录。
除此以外还安装了一些小的文件,我会在解决过程篇列出。
如果安装完成后在RIDE中加载Selenium2Library后按F5还是没看到他被加载进来的话,请看第5步。
4、针对公司局域网无法从外网下载文件的方法。
其实很简单的,把那些egg文件和目录在家里下载下来,拷贝或者发到公司里吧。
如果你的公司局域网又不能访问外网,又不能从外面拷贝或者发送文件进来,那么我只能说悲催的孩子
,我也没办法处理这个纯断网环境了。
如果有条件的可以在自己家里把上面的4个文件,都是egg结尾的文件和目录拷贝过去(图中Selenium的不用拷贝,pth的不用拷贝),这里老道长也提供一个已经打好压缩包的,和我说的4个是一致的:
Selenium2Library1.0.0必备离线升级包 http://download.csdn.net/download/tulituqi/4331624
下载下来之后,将里面的所有.egg(文件和目录)都放入你解压缩的Selenium2Library1.0.0的源码目录内,和setup.py同一级即可。