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