2010-07-28 56 views
0

爲了在我們的構建過程中自動執行DOH測試,我使用Selenium RC在放置在與構建機器不同的域上的服務器上啓動不同的瀏覽器(IE和Firefox) 。爲了啓動DOH,每個瀏覽器都定向到我們的runTests.html。自動化DOH機器人測試由彈出消息插入

有時,使用doh.robot測試開始時,顯示以下消息:

「DOH已檢測到當前網頁試圖訪問DOH,但屬於比不同的域如果您不打算通過訪問此網頁開始新的DOH測試,請立即按「取消」並保留網頁「

但由於這些測試無人看管,所以它只是坐在那裏等待對於某人點擊確定,Selenium超時(在IE 8中,彈出消息似乎自動消失,但機器人隨後不做任何事情)。

正如我所說,它並不總是會發生。在彈出窗口上單擊確定後,該消息將停止顯示,並且消息可以消失幾次會話,但隨後會再次顯示,其中似乎是任意方式。

有沒有人知道一種方法來防止顯示彈出窗口?

回答

1

這可能不是正確的方式,但是在util/doh/robot/DOHRobot.java中,您可能會修改代碼以不檢查或始終模擬按「OK」。我自己並沒有嘗試過,但我也可能需要爲我們的一些自動化測試做到這一點。

0

當DOH機器人初始化時,它首先嚐試單擊您嘗試測試的頁面的左上角。如果你遮住了這個div(你可以用螢火蟲看到它),那麼消息就會彈出。我認爲問題在於你的頁面並不總是快速加載。

解決這個問題有點難度。我有一段時間沒有使用DOH,但我不認爲有什麼方法可以使用setTimeout來解決這個問題。 (您可以嘗試在doh.run命令上使用setTimeout,但可能是在解析任何doh命令之前DOH機器人單擊該div的情況。)

您可能可以做的另一件事是添加一種「等待」命令給Selenium,或者你用來啓動系統的任何shell命令。