目錄
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,重新反注冊和注冊一次。就好了。
原因未知。