【问题标题】:Printing title of third window in selenium webdriver using java使用java在selenium webdriver中打印第三个窗口的标题
【发布时间】:2016-11-13 18:37:44
【问题描述】:

我的场景是:

我有基本网址:www.****.com

打开 URL 后,我点击了一个名为“Test”的链接,它会打开另一个窗口“B”,在窗口 B 我点击按钮“button1”,它将打开另一个窗口“C”。我必须得到窗口 C 的标题。

下面是我的示例代码:

    driver.get("http://www.****.com/");
    WebElement menu_ele        =driver.findElement(By.tagName("a").linkText("PRACTICE"));
    Actions act = new Actions(driver);
    act.moveToElement(menu_ele).build().perform();
    Thread.sleep(1000);
    driver.findElement(By.tagName("a").linkText("Demo Sites")).click();
    driver.findElement(By.tagName("a").linkText("http://www.****.com/Practiceform/")).click();
    Set<String> window = driver.getWindowHandles();
    String window1 = (String) window.toArray()[0];
    String window2 = (String) window.toArray()[1];
   // String window3 = (String) window.toArray()[2];
    driver.switchTo().window(window2);
    driver.findElement(By.id("button1")).click();
    Set<String> win = driver.getWindowHandles();
    String window3 = (String) window.toArray()[0];
    driver.switchTo().window(window3);
    System.out.println(driver.getTitle());
    driver.manage().window().maximize();

我无法切换到窗口 C。我知道这不是最佳做法,建议一些方法来实现它。

【问题讨论】:

    标签: java selenium selenium-webdriver window-handles


    【解决方案1】:

    在您的代码中,我看到您正在尝试切换到 window3,但您正在使用 String window3 = (String) window.toArray()[0]; 将其分配给第一个窗口

    使用

    String window3 = (String) window.toArray()[2];
    

    改为。

    您编辑的代码

        Set<String> window = driver.getWindowHandles();
        String window1 = (String) window.toArray()[0];
        String window2 = (String) window.toArray()[1];
       // String window3 = (String) window.toArray()[2];
        driver.switchTo().window(window2);
        driver.findElement(By.id("button1")).click();
        Set<String> win = driver.getWindowHandles();
        String window3 = (String) window.toArray()[2]; //get the third window from the set
        driver.switchTo().window(window3);
        System.out.println(driver.getTitle());
        driver.manage().window().maximize();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多