1. 程式人生 > >Robot FrameWork UI自動化腳本穩定性與原生關鍵字

Robot FrameWork UI自動化腳本穩定性與原生關鍵字

網頁 全部 宋體 元素 出現 重試 frame word 和數

在執行robotframework 的用例時,經常會出現穩定性差的問題。用例執行第一次成功,執行第二次就可能報錯。自己對這個問題撓頭很久,不知道怎麽解決。今天在瀏覽網頁的時候發現了一個不錯的帖子,好像能夠解決這個穩定性的問題。然後就把貼子搬了過來,為自己做一下備份(看了人家的帖子後,發現原來還是自己對robotframework的關鍵字用的不夠熟悉造成的?(????ω????)?)。


眾所周知,在UI自動化在運行時,時常會收到來自各方的挑戰;開發會說,你的自動化不穩定,又誤報了;測試會說,這個框架不行,太多誤報,我要花大量的時間去復查是否是BUG

出現運行不穩定的情況包含:

一、

頁面加載時快時慢,導致要操作的元素時隱時現!

二、 過多的異步加載,雖然控件加載完成了,但是值的填充正在進行!

三、 網格列表無法判斷,是否加載完成,因為框架加載和數據加載要全部完成,才能操 作!否則會webdriver異常;

四、 Frame不退出為什麽也報錯!

解決問題:

第一個問題:在操作元素之前,需要先判斷元素是否可見,Wait Until Element Is Visible

第二個問題2個解決方案;

l Wait Until Keyword Succeeds 等待後面的關鍵字執行成功,可設置超時時間和重試間隔時間

l

如果你能確定,是否個元素值,加載最晚,就可以使用第一個問題的解決辦法;

第三個問題:通常會對網格進行選中、雙擊、單擊、驗證等處理;如果網格數據未加載完成,webdriver會報錯,以下2種解決辦法;

l 在數據加載時,開發會實現loading效果,我們可以用Js調用開發的Loading判斷,通過返回值,來確定網格列表加載完成沒有;

l 以網格中某行為錨點,判斷這個行是否可見了,如果可見,說明網格基本加載成功,可以使用第一個問題的解決辦法;

第四個問題:點擊一個按鈕,出現一個彈出界面,通常實現是Div裏面嵌套一個Iframe;有人會習慣,關閉這個彈出界面後,就直接操作父頁面了;

研究發現,在某些瀏覽器的某些版本下,

select Frame 後不退出,直接操作父頁面,是OK的;但同時也發現,在一些版本下,即使Frame消亡,不退出framewebdriver也會報錯;所以還是老實的遵守規則吧!

原貼鏈接:https://zhuanlan.zhihu.com/p/21567663

Robot FrameWork UI自動化腳本穩定性與原生關鍵字