最近刚接触自动化测试,新手这两天为了安装RobotFrameWork(以下简称RF),在网上搜索了不少,但是总是和当前情况或者版本不匹配的原因,要么就是Ride.py打不开,要么就是进入了Ride的之后,导入的Library库关键字不完整(比如在Selenium2Library中没有Open Browser关键字;SeleniumLibrary中没有add cookies关键字)。在安装的这两天中主要是两个问题困扰了我许久,所幸的是最后还是解决了。废话不多说,上步骤:
1.Python3的安装
我安装的是Python3.6.6
选择python-3.6.6-amd64.exe(我的是64位的,按照自己的操作系统选择对应的版本)
image
2.安装wxPython
这里我们选择到的版本是4.0.6,之前也尝试过最新版本(好像是4.1.1),结果是ride.py打不开。安装方法千千万,pip方法最简便:
pip install wxPython==4.0.6
image
如果使用原生的pip源下载包会非常慢,可以将pip的源修改为国内的镜像。
修改方法:自行搜索 修改pip源。
我的电脑是已经安装过了的,可以看到wxPython4.0.6版本需要pillow==6.1.0、numpy==1.17.0、six==1.12.0三个第三方包的支持,这里的这三个包都是在安装wxPython的时候自动安装的,但是如果我们之前的pillow包的版本不同的话,可能会出现不兼容的情况,所以,为了保险起见,还是将这三个支持包的版本也更新到对应的版本上。安装方法也是pip。
3.安装robotframework
仍然使用pip安装版本3.1.2
pip install robotframework==3.1.2
4.安装robotframework-ride
版本选择为1.7.3.1
pip install robotframework-ride==1.7.3.1
image
robotframework-ride需要 Pypubsub==3.3.0;Pygments==2.4.2;Pywin32==224;robotframeworklexer==1.1的支持。
其实从这里看的话,安装RF,一个安装robotframework-ride的命令就可以安装所有需要的支持包了,这是个人想法,没有实践过。
正常的话这个时候启动Python安装路径下Scripts中的ride.py文件就可打开RIDE了。
启动方法:找到ride.py文件(我的这个文件位于:C:\Users\83701\AppData\Local\Programs\Python\Python36\Scripts),右键ride.py--打开方式--python;也可以通过cd到该目录下,采用cmd,输入命令
python ride.py
总之你平常怎么运行python文件就怎么运行就行了!
最后检查python安装路径下的script文件夹中是否有pybot.bat文件,如果没有,请继续往下看。
到这里RF就已经安装完成了
可能出现问题:
(1)出现运行不了ride.py的情况下,报错如下:
File "C:\Users\83701\AppData\Local\Programs\Python\Python36\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 789, in _create_font
font=wx.SystemSettings.GetFont(wx.SYS_ANSI_FIXED_FONT)
wx._core.wxAssertionError: C++ assertion "wxFontEnumerator::IsValidFacename(font.GetFaceName())" failed at ..\..\src\msw\settings.cpp(301) in wxSystemSettingsNative::GetFont():
OnInit returned false, exiting...
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ..\..\src\common\wincmn.cpp(478) in wxWindowBase::~wxWindowBase(): any pushed event handlers must have been removed
image
解决方法:将C:\Users\83701\AppData\Local\Programs\Python\Python36\Lib\site-packages\robotide\contrib\testrunner目录下的testrunnerplugin.py文件中的_create_font函数修改为如下代码:
def _create_font(self):
#font=wx.SystemSettings.GetFont(wx.SYS_ANSI_FIXED_FONT) #default font has error
font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT) #set a number in [0-8,10,13],then run ride successfully,SYS_SYSTEM_FONT=13,represents system font
if not font.IsFixedWidth():
# fixed width fonts are typically a little bigger than their
# variable width peers so subtract one from the point size.
font = wx.Font(font.GetPointSize()-1, wx.FONTFAMILY_MODERN,
wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
return font
(2) 没有pybot.bat文件
解决方法:新建pybot.txt文本,将以下内容复制到里面:
@Echo off
python -m robot.run %*
再将文本的后缀改为bat即可,将pybot.bat放到python安装目录下scripts文件夹中。
(3)打开ride后,导入library之后,F5之后搜索关键字,只有部分关键字,即库不完整,比如说我导入了robotframework-selenium2Library库之后没有Open Browser关键字。这个问题到现在依然困扰着我,我不知道是什么原因,这两天因为这个我反复安装了许多版本的python和robotframework,但是一直没解决。但是按照上述步骤安装后,库完整了,也算是解决了这个问题,如果有知道的朋友麻烦在评论区告诉我原因。
上述有不对的地方请指教,我也是新手,好记性不如烂笔头,记下这个过程,日后也方便。