一、安装RF遇到的坑
1、所有安装目录都不要有空格和中文
2、安装AutoItLibrary
①安装顺序为:pywin --> AutoItLibrary --> AutoIt3
②解压安装AutoItLibrary一定要用管理员模式
③安装/重装遇到:subprocess.CalledProcessError:Command‘%SYSTEMROOT%system32
egsvr32.exe*LibAutoItX3.dll’returned non-zero exit status 5
请使用管理员模式打开命令行安装。
报subprocess错误的
可以找到setup.py 内注释70行位置
subprocess.check_all(cmd,shell=True)
和subprocess.CalledProcessError(retcode,cmd)
注释后再运行一次setup.py,成功安装后再向命令行注册一下dll文件:
%SYSTEMROOT%system32
egsvr32.exe /S C:Python27Libsite-packagesAutoItLibrar
ylibAutoItX3.dll
④卸载AutoItLibrary,除了删除AutoItLibrary文件夹外,还需要找出python和robotframe内残存的AutoItLibrary文件夹并删除,建议用everything搜索
3、打开Ride点击run报错
报错信息为找不到robot.bat,解决方法如下:
①检查python的环境变量是否正确
②检查环境变量ComSpec的值是否正确,正常默认为C:Windowssystem32cmd.exe
二、使用RF遇到的坑
1、关闭RF遇卡死现象
原因:使用Selenium2Library时启用浏览器驱动完毕后,未及时关闭驱动。查看后台进程可看到浏览器驱动在后台残存
解决方案:
①关闭浏览器驱动:Process Close IEDriverServer.exe
②关闭浏览器:Close All Browsers
2、更换PC后运行RF点击坐标不准确
原因:RF中AutoIt2Library中的鼠标坐标都是基于当前显示屏的分辨率,如换台分辨率不一致的机子会导致坐标偏移
解决方案:
①新PC的分辨率设置和旧机子一样
③建议在编写RF时使用相对坐标进行定位,可避免分辨率问题。
3、RF运行过快导致失败
原因:RF运行速度偏快,会出现上一步刚运行完,马上执行下一步,此时PC还没反应过来,所以会导致失败报错。
解决方案:
①建议在关键代码使用等待语句例如Wait Until Page Contains、Wait For Active Window等待事件
②无合适的等待语句时,再使用sleep进行等待
4、浏览器查找不到元素
①检查浏览器设置:包括插件、页面百分比、检查internet选项高级页面关闭增强模式、以及安全页面同时启用保护模式(或者同时禁用保护模式)。
②检查iedeiver.exe版本和selenium版本是否一致,不一致需更新到统一主版本
③检查浏览器是否禁用了autoIt的插件,如有禁用请打开
④检查selenium2Library是否安装正确
⑤检查ie版本,测试期间使用的是ie版本是:11.0.9600.17843
⑥以上步骤检查后依旧无效,请重置浏览器后按第一步操作再试一试。
三、使用关键字遇到的坑
1、Grep File
1)、“[ ]”对Grep File关键字有特殊含义,所以筛选语句含“[ ]”符号时,Grep File会另做处理,导致会匹配不到。
解决方案:
①拿“* *”代替“[ ]”即可
2、Get Active Window Image
1)、使用此关键字,后台最小化窗口截屏会失败,RF会进行报错。
解决方案:
①开启远程桌面进行截屏
②如果是浏览器截屏,可以使用Capture Page Screenshot,需注意此关键字不支持截屏过旧的游览器插件,使用时需验证可不可用
3、Take Screenshot
1)、使用此关键字,后台最小化窗口截屏虽然会成功,RF不会进行报错,但截的图片是全黑的。解决方案:开启远程桌面进行截屏
解决方案:
①开启远程桌面进行截屏
②如果是浏览器截屏,可以使用Capture Page Screenshot,需注意此关键字不支持截屏过旧的游览器插件,使用时需验证可不可用
4、Open Browser
1)、使用此关键字打开不了浏览器
解决方案:
5、Input Text
1)、使用此关键字输入字符速度过慢
解决方案:将64位浏览器驱动换成32位浏览器驱动
四、配合jinkins遇到的坑
1、后台截屏时不可最小化远程桌面使用Get Active Window Image关键字,会导致报错
解决方案:
①开启远程桌面进行截屏
②如果是浏览器截屏,可以使用Capture Page Screenshot,需注意此关键字不支持截屏过旧的游览器插件,使用时需验证可不可用
2、后台最小化远程桌面时,不可使用Wait For Active Window、Handle Alert、Win Wait active等等待窗口语句,jinkins处于无桌面状态,所以等待不到窗口,最终会因为等待窗口超时而进行报错。
解决方案:
①将等待窗口语句用sleep语句替代,预估窗口出现的时间即可
2、用例运行时间过长,导致jinkins挂掉
原因:最开始个别用例执行一条需要耗费1~2个小时,在这个期间,都没有向控制台输出命令,导致jenkins认为RF “挂掉” ,进而影响到jenkins对此项目的构建,最终可能导致jinkens重启重新构建。
解决方法:拆分用例,保证单条用例的执行时间最长不要超过20分钟。
3、执行用例过程中一直等待,导致jinkins长时间等待,进而影响到jinkens其他项目的构建
原因:RF执行过程一直等待的原因有很多,最常见的是等待某个元素、窗口、接口响应等,一定要对等待事务做一个等待时长的判断,避免RF因等待不到指定元素长时间停留在此用例。本次遇到的等待问题是ie不稳定是会跳出弹窗“internet explorer 已停止工作”和“iederver.exe已停止工作”,前者弹窗不影响RF的执行,后者弹窗则会导致RF一直在等待