2017-07-04 61 views
1

在我的网站,当我在主页上搜索任何东西它的开放一个叶窗和一个隐藏弹出式背后 window.Using硒我想正确或不知道它的开放,也借此两个窗口链接。硒获取弹出和隐藏弹出式当前打开的链接

我试过,但它不工作

public class Utility 
{ 
    public static WebDriver getHandleToWindow(String title){ 

     //parentWindowHandle = WebDriverInitialize.getDriver().getWindowHandle(); // save the current window handle. 
     WebDriver popup = null; 
     Set<String> windowIterator = WebDriverInitialize.getDriver().getWindowHandles(); 
     System.err.println("No of windows : " + windowIterator.size()); 
     for (String s : windowIterator) { 
      String windowHandle = s; 
      popup = WebDriverInitialize.getDriver().switchTo().window(windowHandle); 
      System.out.println("Window Title : " + popup.getTitle()); 
      System.out.println("Window Url : " + popup.getCurrentUrl()); 
      if (popup.getTitle().equals(title)){ 
       System.out.println("Selected Window Title : " + popup.getTitle()); 
       return popup; 
      } 

     } 
       System.out.println("Window Title :" + popup.getTitle()); 
       System.out.println(); 
      return popup; 
     } 
} 

回答

2

当你推出只有一个webdriver的过程中,将只有一个的webdriver。它包含一个窗口句柄列表。你不需要有多个WebDriver实例。如果您想要转到新窗口(或选项卡)然后返回主窗口,则应在WebDriverInitialize类的某处存储主窗口的窗口句柄。我下面的例子展示了如何将windowHandle存储在Utility类中。

public class Utility 
{ 
    public static void switchToNewWindow(String title){ 
     Set<String> windowIterator = WebDriverInitialize.getDriver().getWindowHandles(); 
     System.err.println("No of windows : " + windowIterator.size()); 
     for (String s : windowIterator) { 
      String windowHandle = s; 
      WebDriverInitialize.getDriver().switchTo().window(windowHandle); 
      System.out.println("Window Title : " + WebDriverInitialize.getDriver().getTitle()); 
      System.out.println("Window Url : " + WebDriverInitialize.getDriver().getCurrentUrl()); 
      // you may use .getTitle().contains(title) if you cannot predict the full title 
      if (WebDriverInitialize.getDriver().getTitle().equals(title)){ 
       break; 
      } 
     } 
    } 

    public static string mainWindowHandle; 

} 

WebDriverInitialize.getDriver().get("https://www.rentalhomes.com/"); 
Utility.mainWindowHandle = WebDriverInitialize.getDriver().getWindowHandle(); 
... 
WebDriverInitialize.getDriver().findElement(By.id("home-page-search-btn")).click(); 
// Switch to the new window 
Utility.switchToNewWindow("San Francisco ..."); 
// Switch back to main window 
WebDriverInitialize.getDriver().switchTo().window(Utility.mainWindowHandle); 
+0

WebDriverInitialize这个代码库的问题。你建议我该如何解决。 – zsbappa

+0

@zsbappa你能显示错误吗? – Buaban