2015-02-06 76 views
0

我們點擊鏈接/按鈕如何使用Selenium處理彈出窗口? (「driver.switchTo()窗口(窗口句柄);」沒有一貫的工作)

我使用下面的代碼之後面臨的一些問題,在切換到新窗口切換到新窗口。

elem.click(); 
for (String winHandle : driver.getWindowHandles()) { 
driver.switchTo().window(winHandle); } 

觀察發現腳本運行不一致,這會,如果我得到了一些一致的代碼切換到新窗口是巨大的。我覺得在切換到新窗口時出現同步問題。

+2

你有沒有試過等一下?也許窗口不在那裏,當你檢查它在那裏 – mhlz 2015-02-06 11:20:02

+0

請點擊元素和窗口打開之前使用等待。 – 2015-02-06 11:22:15

+1

請使用建議的@HelpingHands等待,並嘗試上傳所有可能的代碼和操作的相應HTML代碼段。 – 2015-02-06 12:16:14

回答

0

如果@HelpingHands建議將無法正常工作的問題可能就在於多個處理程序同時 存在下面的代碼可能會有所幫助: 當你創建驅動程序,請爲了節省撥付處理器

driver = new FirefoxDriver(profile); 
driver.get(uri); 
MainWinHandler = driver.getWindowHandle(); 

然後開關

for(String winHandle : driver.getWindowHandles()){ 
    if(!winHandle.equals(MainWinHandler)) 
     driver.switchTo().window(winHandle); 
} 
+0

感謝您的回覆它現在的作品.. 即使添加等待點擊元素之後和窗口打開工程,但不穩定的加載頁面 – 2015-02-10 07:14:28

0

試圖在使用以下提及格式

`driver = new FirefoxDriver(profile); 
driver.get(uri); 
String parentWindowHandlerP = driver.getWindowHandle(); 
elem.click(); 
while (driver.getWindowHandles().size() < 2) { 
Thread.sleep(500); 
} 
Set<String> handles = driver.getWindowHandles(); 
for (String windowHandle : handles) { 
if (!windowHandle.equals(parentWindowHandlerP)) { driver.switchTo().window(windowHandle); 
} 
}`