值得為Selenium痛苦嗎?Atlassian開發(fā)者Nick Menere在Atlassian開發(fā)者博客(Atlassian Developer Blog)上提出了這樣一個特別的問題。Selenium是為Web應(yīng)用所提供的測試工具,其直接運行在瀏覽器中。在他的blog中,Menere表達了對于使用Selenium測試JIRA 3.10中兩個新的Ajax特性時所碰到的障礙的看法。這些障礙包括:
鍵盤事件
顯然,selenium.type(...) 并不真正模擬一個用戶鍵入到輸入框的動作。參看圖片。因此需要我們鍵入文本并單獨觸發(fā)每個鍵盤事件——selenium.keyDown(...); selenium.keyPress(...); selenium.keyUp(...);。在Firefox中,它起作用了!!……在其他瀏覽器中,每個字符將會打印兩次。
定時
……由于有非可選項目(section label等等),我們想測試一些元素屬性沒有被改變。我們發(fā)起一個該元素上的鼠標事件,接著用xpath定位器檢查該元素的屬性確實沒有變化……這需要在事件發(fā)起與測試之間短暫暫停……“新增/加大暫停時間”是修正大多數(shù)可能失敗的測試的常用方法。
鼠標定位問題
為了給用戶更好的使用體驗,我們決定加入自動滾動特征……在插入/加大了一堆暫停之后,我們?nèi)圆荒苁瓜嚓P(guān)測試通過。為什么屏幕滾動造成了測試失?我們在被選元素而非坐標上發(fā)起了事件。構(gòu)建依然失敗……我看到鼠標直接跑到了屏幕的中央,當瀏覽器窗口滾動時,鼠標被定位到了一個非可選擇項目上……怎么修正呢?我安裝了xwarppointer,以使我們通過bash來移動鼠標指針,并把鼠標指針塞到一個角落里。