手把手教你學robotframework自動化框架(第七章:出坑秘籍,問題匯總)

目錄

1、環境配置(完成)

2、一個簡單的實例(完成)

3、讓用例更完善一些(2021年01月15日完成完成)

4、用例的前置和后置(2021年01月18日完成)

5、關鍵字的封裝和傳參(2021年1月23日完成)

6、創建自己的資源文件(2021年1月23日完成)

7、出坑秘籍,問題匯總(2021年1月25日完成)

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,重新反注冊和注冊一次。就好了。

原因未知。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容