2014-03-13 33 views
2

這是我的第一個關於Stack Overflow的問題。感謝所有保持技術激情的StackOverflow用戶。Selenium Webdriver - Chrome - 切換窗口並返回 - 無法接收來自渲染器的消息

我正在用硒Webdriver測試一個Web應用程序。這是支付網頁,在選擇付款方式爲「PayPal」後,它會打開一個新的Popup,一個PayPal彈出窗口和我切換到PayPal的窗口,執行所有必要的交易。而且一旦交易成功,貝寶彈出窗口就會自動關閉,而且我無法返回到原來的窗口,從我開始交易的地方開始。

我得到以下的Eclipse控制檯錯誤:

Starting ChromeDriver (v2.9.248315) on port 25947 
[70.164][SEVERE]: Unable to receive message from renderer 

以下詳細信息可能有所幫助:

  • 硒的webdriver(2.28.0)
  • 爪哇 - JRE7
  • 谷歌瀏覽器版本 - 版本33.0.1750.146
  • 測試框架 - 測試NG

這裏是我的代碼:

   // To Switch to Popup/Paypal window 

       String currentWindowHandle=driver.getWindowHandle();   

      Set<String> openWindowsList=driver.getWindowHandles();   
      String popUpWindowHandle=null; 
      for(String windowHandle:openWindowsList) 
      { 
      if (!windowHandle.equals(currentWindowHandle)) 
      popUpWindowHandle=windowHandle; 
      } 

      driver.switchTo().window(popUpWindowHandle);  
    // Carraying out my paypal transaction   
      driver.manage().window().maximize(); 
      driver.findElement(By.xpath("//*[@id='loadLogin']")).click(); 

     Thread.sleep(8000); 

     WebElement login_email = driver.findElement(By.xpath("//*[@id='login_email']")); 
     login_email.clear(); 
     login_email.sendKeys(Keys.BACK_SPACE); 
     login_email.sendKeys("[email protected]"); 

     WebElement login_password = driver.findElement(By.xpath("//*[@id='login_password']")); 
     login_password.clear(); 
     login_password.sendKeys("abcxyz"); 
     // Next Click is Final Click on PayPal       
     driver.findElement(By.xpath("//*[@id='submitLogin']")).click(); 
     // Transaction is finished on PayPal side and it automatically popup is closed 
     //Now i am trying to switch to my last working(original) window 
     driver.switchTo().window("My Web Page Title"); 

回答

3

您應該使用:

driver.switchTo().window(currentWindowHandle); 
+0

感謝您的回覆。但問題仍然存在。 CurrentWindowHandle沒有工作。但我仍然無法切換到原來的窗口。還有什麼建議?我很樂意嘗試 –

+0

問題得到解決。非常感謝 –

2

的問題得到解決。

我聲明currentWindowHandle的地方是點擊後,它將新窗口作爲當前窗口句柄。

我剛纔在聲明之下移動到新窗口單擊事件之前。

String currentWindowHandle=driver.getWindowHandle(); 

感謝所有爲您的時間和幫助。

相關問題