2012-07-24 32 views
0

我不知道這是否屬於「正常」行爲,但迄今爲止我沒有看到任何解釋。我正在測試一個沒有名稱的JavaScript彈出窗口,爲了能夠測試該彈出窗口上的元素,我必須等到popup完全加載。我沒有用來檢查div元素是否存在,因爲它是here,但嘗試了別的東西。彈出式名稱爲「window」的waitForPopUp方法的奇怪行爲,用於不帶名稱的彈出式窗口?

這是我試過的,最奇怪的是它的工作原理。

browser.waitForPopUp("window", "3000"); 

它適用於我所有的彈出窗口(它們都沒有名稱)。我嘗試了其他字符串,如「默認」,「空」,甚至是一個空字符串,但他們都沒有工作(我讀了某處,我忘了在哪裏,如果我找到鏈接,我會更新,所以我讀了如果我設置第一個參數設置爲「null」,那麼它會使測試等待,直到彈出加載,當我嘗試時,我只遇到超時問題)。

任何人都有線索知道發生了什麼,爲什麼它工作?

謝謝!

回答

1

的waitForPopUp方法的文檔可以在這裏看到 - http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#waitForPopUp%28java.lang.String,%20java.lang.String%29

關於第一個參數,它說:「WINDOWID - JavaScript的窗口‘將出現在窗口的名稱’(標題欄的文本不)如果未指定,或者指定爲「null」,則此命令將等待第一個非頂層窗口出現(如果您同時使用多個彈出窗口,則不要依賴此窗口)。「

我想,當你說你的彈出沒有名稱時,你實際上是指標題。您的彈出窗口的實際名稱可能實際上是「窗口」。

在w3schools示例http://www.w3schools.com/jsref/prop_win_name.asp上,可以看到彈出窗口的名稱與標題欄中的名稱不同。事實上這個名字並沒有出現在任何地方。

+0

因爲我還不知道的原因,你說我的彈出式名稱是「窗口」時,你一定是對的,我會試着找出原因。但仍有一些我不明白的地方,爲什麼當我使用null或「null」作爲第一個參數時會失敗(據我所知,不可能不指定參數windowId,所以我只嘗試將它設置爲空值)。你有什麼主意嗎?謝謝 – aslan 2012-07-25 06:20:57