从Selenium WebDriver Java中的Child切换到新的父窗口

时间:2016-04-28 06:03:18

标签: webdriver

我面临以下错误!!

我正在使用Selenium WebDriver。从父级切换到子窗口并单击子级上的链接,该链接会将我重定向到之前的父窗口,并在其中打开新的URL。

我需要在同一个上一个父窗口中切换到新的父URL,但无法这样做。

任何帮助非常赞赏!!

以下是代码: driver.findElement(By.id("&href_billing_放大器; _reporting&#34))。单击();

    driver.findElement(By.linkText("Go to Billing Summary")).click();

    driver.findElement(By.linkText("01 Mar 2016")).click();

    Thread.sleep(5000);

    driver.findElement(By.linkText("AMS TAX")).click();

    driver.findElement(By.linkText("00842")).click();

    String Parenthandel = driver.getWindowHandle();

    for(String Child : driver.getWindowHandles()){

        driver.switchTo().window(Child);
    }

    driver.switchTo().frame("modalSubWindow");

        driver.findElement(By.linkText("View More Vehicle Details>>")).click();
        driver.switchTo().window(Parenthandel);

我也尝试使用defaultcontent()方法,但没有运气!!

2 个答案:

答案 0 :(得分:0)

由于父窗口正在导航到新的URL,因此selenium会刷新父窗口句柄。

尝试此解决方案。

  1. 保存子窗口句柄
  2. 点击&#34后再次获取所有窗口句柄;查看更多车辆"链路
  3. 通过手柄循环并切换到不等于孩子的窗口。

答案 1 :(得分:0)

使用Collection(Set),可以保存所有可用的打开窗口详细信息..

driver.findElement(By.linkText("转到结算摘要"))。click();

    driver.findElement(By.linkText("01 Mar 2016")).click();

    Thread.sleep(5000);

    driver.findElement(By.linkText("AMS TAX")).click();

    driver.findElement(By.linkText("00842")).click();

    Set<String> instancewindow= driver.getWindowHandles();
        Iterator<String> it = instancewindow.iterator();
        String parent =it.next();
        String child = it.next();
        driver.switchTo().window(child);

    driver.switchTo().frame("modalSubWindow");

        driver.findElement(By.linkText("View More Vehicle Details>>")).click();
        driver.switchTo().window(parent);