2012-04-24 56 views
0

我試圖處理Java中的特定PopUp/new WindowSeleniumServer但它只是不工作。 我已經做了:如何處理PopUpWindow硒

selenium.click("css=a[title=\"Some irrelevant title\"] > div.text"); 
Thread.sleep(5000); 
    for (String s : selenium.getAllWindowNames()) { 
    if (s.contains("_blank")) { 
    selenium.selectWindow("name=" + s); 
    selenium.windowMaximize(); 

    } 
} 

但它無法識別新窗口。如果我使用getAllWindowIDs或名稱或標題,它只會返回一個主窗口。

如果我使用selenium.waitForPopUp("foobar", "9999")它超時失敗後,這就是爲什麼我使用常規Thread.sleep()

我還能做什麼?

+1

只是瞎炮:約'selenium.selectPopup什麼()'不指定任何屬性?它神奇地幫助我一次。 – 2012-04-24 07:18:08

+0

沒有..但無論如何感謝。 – Matthias 2012-04-24 12:31:56

回答

0

這可以幫助:

selenium.RunScript("selenium.browserbot.findElement('css=a[title='Some irrelevant title']').target='my_window'"); 
selenium.RunScript("window.open('', 'my_window')"); 
selenium.click("css=a[title='Some irrelevant title']"); 
selenium.selectWindow("my_window"); 
selenium.waitForElementPresent("element_locator_at_popup") 
+0

感謝您的幫助,但它不起作用.. 它打開一個新的空窗口,並單擊鏈接,但彈出窗口打開在第三個窗口中仍然沒有ID ... 點擊鏈接如下所示: Matthias 2012-04-24 12:28:21

+0

@Matthias代替'CSS = A [標題=部分不相關的標題]> div.text'插入'的CSS, = [標題=對不起,但無關緊要]'。編輯我的初步答案 – 2012-04-24 12:43:17

+0

我通過使用直接鏈接來修復它,而不是在那裏瀏覽,所以我沒有測試你最後的改變。但非常感謝您的幫助! :) – Matthias 2012-04-27 05:45:42

0

首先做它manualy,彈出後彈出來單擊按鈕只需在彈出窗口中使用硒記錄的東西..如果您獲得窗口ID R標題別的然後使用該「ID」在「waitforpopup」命令。

+0

我在新窗口中記錄了一些像isTextPresent這樣的操作,但問題是硒不識別新的窗口,並嘗試在舊窗口中查找文本。 新的窗口沒有ID,姓名或名稱,也不存在服務器.. – Matthias 2012-04-24 09:48:05

+0

首先檢查天氣肯定是一個彈出窗口或alert..if警告裝置強制檢查的天氣是一個JavaScript警告[R瀏覽器確認框? – Manigandan 2012-04-24 09:55:38

+0

它是一個PopUp,一個新的瀏覽器窗口,而不是一個警報或確認框。 – Matthias 2012-04-24 10:00:59