【问题标题】:Switch to pop up window using Selenium使用 Selenium 切换到弹出窗口
【发布时间】:2015-08-14 14:33:49
【问题描述】:

我正在尝试切换到弹出窗口,但我在这样做时遇到了麻烦。我单击的链接会将我重定向到电子邮件弹出窗口。

我的代码是:

public String determineIfCorrectUrlOnPopUp() {

    clickOnEmailThisSeller();
    for (String currentWindow: driver.getWindowHandles()) {

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

    System.out.println(driver.getCurrentUrl());
    return driver.getCurrentUrl();

}

但它会打印出父窗口 URL 而不是弹出窗口。我不确定我做错了什么?

【问题讨论】:

    标签: java selenium


    【解决方案1】:
    public String determineIfCorrectUrlOnPopUp() {
    
    clickOnEmailThisSeller();
    
    // Below Line in your code will switch to  the current window  by using for each loop
    for (String currentWindow: driver.getWindowHandles())
           driver.switchTo().window(currentWindow);
    {
       //Now you are in Popup window and you can get the pop-up window URL here
        System.out.println(driver.getCurrentUrl());
        driver.close();  
    }
    
    System.out.println(driver.getCurrentUrl()); // This will return Parent window URL
    return driver.getCurrentUrl();
    
    }
    

    【讨论】:

    • 这个成功了,非常感谢!我不确定为什么我的不起作用。
    • Rupesh,你能解释一下你的语法吗?为什么`driver.switchTo().window(currentWindow);`后面有大括号?
    • 我想说,在大括号里面,我们必须包含在弹出窗口上工作的代码,或者简单地说,你认为它是一个模板,我们将始终使用它来处理这种情况。我已经在这里解释了模板。请检查rupeshrshinde.blogspot.in/2014/11/…
    • 我真的不明白你的语法。你用的是java的语法吗?
    • Robben 是的,它在 Java 中
    【解决方案2】:

    你试过了吗

    driver.switchTo().window(handle).getCurrentUrl();
    

    我没有做过很多,但我确实写了一个关闭弹出窗口的小函数,我使用了

    driver.switchTo().window(handle).close();
    

    关闭弹出窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 2012-12-31
      • 2021-07-31
      • 2016-03-09
      • 2018-01-03
      相关资源
      最近更新 更多