今天在調Test Case使當Robot使用HeadLess ChromeHeadLess Firefox Browser時可以在不用修正Test Case下皆能Pass

  主要是當RobotHeadLess FirefoxClick Element時都可以正常點擊到我要點的Div(SSO-JP-BETA區塊,UserID)元素,而判斷是否點到與否的關鍵在於Div右下角可以彈出My AccountSignOut Menu,所以當下一動Robot檢查My Account 元素是否存在時就會成功,然後繼續做下一步。

  然而同樣的情況叫Robot換用HeadLess Chrome來執行時,這時候就怎樣都點不到Div(SSO-JP-BETA區塊,UserID)元素,所以My Account/Sign Out Menu就一直出不來,之後"Wait Until Element Is Visible    My Account    30"便會因為等不到小Menu出現在30秒後Time Out,然後Test Case 就死在這裡了。

  於是在HeadLess Chrome之下,我不斷試了大大小小的點擊或滑鼠事件,Robot就是有辦法很牛逼的跟我說他點不到Div,真不知道他是發生了什麼事。

 

  最後我靈機的腦袋瓜突然一動,拿Simulate    Locator    Event這個Keyword來試看看好了,這是強迫"模擬"Web browser的所有操作事件的一個Selenium2Library Keyword,這邊我要模擬在UserID這個DIVClick的事件,有點像是我不管這DIV元素在頁面哪裡,我就是要強迫點擊這個元素:

 

Simulate    UserID    click

  結果還真的是奏效了,模擬事件幫我完成了DIV元素點擊的動作,中間不用透過笨笨的Robot,明明都已經告訴他元素就在那裡,只是永遠點不到,還真是將我給打敗。

  然後我再把Browser切回HeadLess FireFox Mode,同樣也過了Test Case,成功達成Test CaseHeadLess 瀏覽器的要求,Perfect!

  另一方面在Cross HeadLess Browsers的體驗上,FireFoxChrome都大大縮短Web UI Test Case的執行時間,著實有感,證明HeadLess做法可以拿來Run 大量的Web UI Automation,因為比較有效率。

  但另一方面對於HeadLess Chrome的感受就明顯比HeadLess Firefox 差,因為Chrome 一直都有些奇怪的問題,像這Robot點不到明顯元件就是一例,而它在Command Line執行時更是會出現被稱作是bug的訊息,目前無解,但不會影響結果,只是很明顯在HeadLess這方面Chrome仍有許多方面需要加強。

 

(執行HeadLess Chrome都會秀這個ERROR,但是不會影響測試)

 

201895日星期三 

arrow
arrow

    jackterrylau 發表在 痞客邦 留言(0) 人氣()