目录
8、如何自己编写一个library(2021年1月28日完成)
9、数据库连接
9、如何支持win32应用
10、接口测试
11、持续集成
12、自定义包
13、ride使用(快捷键、tear down、timeout、template、tags)
14、常见问题
问题1、安装后,testcase的编辑区域很小无法使用。
--->解决:
这是因为ride和python3.8兼容不好,可以升级ride。
pip install -U https://github.com/robotframework/RIDE/archive/master.zip
升级后正常。
问题2、执行报错
command: pybot.bat -A C:\Users\ADMINI~1\AppData\Local\Temp\RIDEn5q1l5cf.d\argfile.txt --listener D:\Python38\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:50075:False F:\whty\whty
--->解决:
版本兼容问题,可以做如下设置解决。
问题3:执行报错
\xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd2 | FAIL |
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
--->解决:
因为webdriver没有放入path,如果是crome浏览器,需要先下载浏览器驱动geckodriver,将下载的geckodriver放到火狐浏览器的执行目录下
然后把这个地址加入环境变量path。或者把geckodriver放入python的安装目录根目录下也可。
geckodriver下载地址:https://github.com/mozilla/geckodriver/releases
下载geckodriver.exe 地址:https://github.com/mozilla/geckodriver/releases,根据自己系统选择相应的版本
下载解压后将getckodriver.exe复制到Firefox的安装目录下,如(C:\Program Files\Mozilla Firefox),并在环境变量Path中添加路径:C:\Program Files\Mozilla Firefox;
再次运行就OK。
问题4:执行报错
[ ERROR ] Suite 'Whty' contains no tests matching name 'Whty.Test.\xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd' in suite 'Whty.Test'.
Try --help for usage information.
---》解决:test suite格式问题,可以换成robot格式即可。右键点击suite,选择change format
问题5:ride输出编码问题
ride的log输出中,出现编码错误
\xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd2 | FAIL |
PermissionError: [WinError 5] \xbe\xdc\xbe\xf8\xb7\xc3\xce\xca\xa1\xa3
或者:\xb5\xbc\xc8\xeb\xb7\xd6\xc5\xe4
--->解决:Python 安装路径下修改 \Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py 文件,将 'SYSTEM': SYSTEM_ENCODING,改成 'SYSTEM': OUTPUT_ENCODING,如下图:
因为我用的python3和ride2,用了上面的方法并没有解决问题,后来我就重新装了ride的1.7.4.2版本,导致ride无法启动,于是又重新执行了官网的指令进行安装。pip install robotframework-ride==2.0b1。如果不带==2.0b1,安装的版本号是不同的,不知道是不是这个原因导致的。重新安装后就正常了。
问题6:图形验证码获取
测试过程中,需要测试一些验证码功能,需要涉及到图形识别,要先安装Tesseract-OCR,下载exe安装;
然后pip安装pillow,pip安装pytesseract(依赖pytesseract-OCR,所以要先安装)
安装完esseract-OCR要配置环境变量
还要修改如下图文件
修改文件
修改内容:tesseract_cmd = r'D:\Program Files (x86)\Tesseract-OCR\tesseract.exe'。注意要修改到exe级别
重启电脑
问题7:关于自定义包引用问题
1、在site-pakages下面新增NewLibrary文件夹,内部文件如下
其中_init_.py是必须的,可以为空文件。
然后ride引用
引用截图
不知为何,直接引用NewLibrary是不行的。还不知原因。
另外需要配置NewLibrary这个目录为环境变量
问题8:识别验证码,且带干扰线
可以参考如下链接解决,本人未尝试
https://blog.csdn.net/weixin_40267472/article/details/81384624
问题9:安装autoitlibrary报错command errored out with exit status1:
在用pip安装autoitlibrary的过程中,出现如下报错。
百度了后,说是需要用管理员身份执行,所以需要下载下来进行安装。
下载autoitlibrary、autoit
autoit下载地址:https://www.autoitscript.com/site/autoit/downloads/,版本最新是1.1
autoitlibrary下载地址(官网):http://www.softpedia.com/get/Programming/Components-Libraries/AutoItLibrary.shtml
autoitlibrary下载后解压到某个文件夹,然后用管理员身份执行命令行。我是放在D:\Python38\AutoItLibrary-1.1这个路径下。
安装过程中会有一些语法报错,需要修改一下autoitlibrary的代码,因为它支持的应该是python2
修改文件:D:\Python38\AutoItLibrary-1.1\setup.py
修改print为print():
修改“raise Exception, "Failed to run %s" % cmd”为“raise Exception("Failed to run %s" % cmd)”:
将exception和print的都加上括号
_init_.py文件里面的exception
logger.py文件里面的print
然后用管理员身份执行cmd
执行如下命令
因为autoitlibrary依赖autoit,所以还要下载autoit后安装,记住安装的时候要选择64bit的
可是安装后,ride里面导入autoitlibrary还是红色。mygod,路漫漫其修远兮。。。
继续查查查,先看报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python38\lib\site-packages\AutoItLibrary\__init__.py", line 30, in <module>
import Logger
ModuleNotFoundError: No module named 'Logger'
------提示找不到模块,查了下,python3的语法和python2是不同的,模块的调用也不同,找到一个说法说模块前面要加_,试试还是不对
>>> import AutoItLibrary
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python38\lib\site-packages\AutoItLibrary\__init__.py", line 30, in <module>
import _Logger
ModuleNotFoundError: No module named '_Logger'
然后继续找差异,百度上找到下面这个说法
其他语法差异参考链接:https://www.cnblogs.com/davidwang456/p/7493795.html
按照这个说法,改了一下D:\Python38\Lib\site-packages\AutoItLibrary\__init__.py文件的代码
将 import Logger和 import Counter
改为:
from . import Logger
from . import Counter
先在cmd里面执行python的importAutoItLibrary,试试,如下:
>>> import AutoItLibrary
>>>
没有报错,说明成功啦!!!哈哈哈哈哈开心。
可是,,,,去ride里面导入。omg,我 要死了
继续攻克。。。。
利用cmd(且需要用管理员身份进入否则会报0x80070005代码错误,注册失败)进入AutoItX3.dll文件所在路径,运行系统注销和系统注册命令:
c:\Python27\Lib\site-packages\AutoItLibrary\lib>regsvr32 /u AutoItX3.dll
c:\Python27\Lib\site-packages\AutoItLibrary\lib>regsvr32 /s AutoItX3.dll
终于成功,欢天喜地,喜极而泣,折腾了一个上午:
问题10:autoitlibrary中途突然部分关键字不可用
在某天安装了appiumlibrary后,发现和seleniumlibrary的关键字有冲突,于是删除了appiumlibrary
但是第二天autoitlibrary中的部分关键字也消失了,只能看到8-9个可用关键字。
--->解决:
F5查询AUTOITLIBRARY的关键字,只有几个了。缺少了很多关键字。为啥捏?
搞不懂。于是删除了autoitlibrary。然后重新导入,还是不行。
继续度娘啊。度娘也没找到好的办法。
于是又重新安装了一次autoitlibray,重新反注册和注册一次。就好了。
原因未知。