【问题标题】:How to handle new window, which opened automatically in new tab?如何处理在新选项卡中自动打开的新窗口?
【发布时间】:2020-07-10 02:49:04
【问题描述】:

我的测试代码做thomething,然后自动打开新标签并在新标签中自动打开新窗口(不是标签)。

当我使用此代码时:driver.getWindowHandles() 它返回 2 个选项卡 ID 而不是 3 个选项卡 ID。

【问题讨论】:

    标签: java selenium webdriverwait window-handles expected-condition


    【解决方案1】:

    如果是新窗口统计WindowHandles的个数需要为numberOfWindowsToBe(2)诱导WebDriverWait,可以使用如下代码块:

    String mainWindowHandler = driver.getWindowHandle(); // store mainWindowHandler for future references
    //line of code that opens a new TAB / Window
    new WebDriverWait(driver, 5).until(ExpectedConditions.numberOfWindowsToBe(2));  //induce WebDriverWait
    Set<String> handles = driver.getWindowHandles(); 
    Iterator<String> iterator = handles.iterator(); 
    while (iterator.hasNext()) 
    { 
        String subWindowHandler = iterator.next(); 
        if (!mainWindowHandler.equalsIgnoreCase(subWindowHandler))
        {
            driver.switchTo().window(subWindowHandler);
        }
    }
    

    参考文献

    您可以在以下位置找到一些相关的详细讨论:

    【讨论】:

    • 很好,谢谢,等待 3 个窗口是个问题...new WebDriverWait(driver, 5).until(ExpectedConditions.numberOfWindowsToBe(3));。工作正常!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多