当前位置: 首页 > 知识库问答 >
问题:

在selenium webdriver中实现“Wait forNewWindow”

关胜
2023-03-14

我正在尝试使用selenium WebDriver在Java中实现一个方法'waitforNewWindow'。这个方法的全部内容是等待检查是否打开了一个新窗口。如果在指定的时间内打开了一个新窗口,我需要返回true,否则返回false。

公共布尔waitForNewWindow(字符串目标){

    try {

        Thread.sleep(30000);
        if(driver.switchTo().window(target)!=null) {
            log.info("New window is opened");
            return true;
        }


    }catch(Exception e) {
        log.debug(e);
        return false;
    }
    return true;
}

但是在这里,我不想使用thread.sleep(时间)。等待时间需要指定如下:

WebDriverWait wait=new WebDriverWait(驱动程序,超时);

共有1个答案

谭灿
2023-03-14

下面提到的代码检查出现超时的窗口数

public void waitForNumberOfWindows(final int length){
    new WebDriverWait(driver, 30) {
    }.until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver driver) {
            return driver.getWindowHandle().length()==length;
        }
    });
}

它将检查该实例中存在的预期窗口数,如果计数与指定的超时(上面的代码中为30)匹配,则返回true

 类似资料:
  • 问题内容: 今天,当我使用Selenium WebDrive时,出现错误。我的平台是mac osx。这是我的异常日志。 我不知道为什么会这样。我的Firefox路径是默认路径。谢谢您的帮助!! 问题答案: WebDriver使用端口7054(“锁定端口”)作为互斥体,以确保我们不会同时启动两个Firefox实例。您创建的每个新实例将在启动浏览器之前等待互斥体,然后在浏览器打开后立即释放互斥体。 因

  • 问题内容: 我如何在seleniumwebdriver 3.0 beta版本中使用geckodriver。当我实例化Firefox时: 我得到错误: 线程“主”中的异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;否则,必须执行以下操作:有关更多信息,请参见 https://github.co

  • 我实际上有三个问题: Selenium WebDriver如何实现此 因为我们不能给无限睡眠的线程一个负值。 有没有更好的方法来实现无限等待? 我们在SeleniumWebDriver文档中看到了这一点

  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我一直在为FF写我的脚本,但希望他们所做的工作很少,它们也可以在其他浏览器上运行,但是IE驱动程序似乎存在按钮问题? 我在按钮上有一个简单的webelement.click(),不会引发错误,但不单击按钮。在FF它的罚款。我可以获取文本,获取价值,所以我知道find语句是可以的,只是不会单击它。 想法或帮助会很棒 只是做 HTML-控件上有3个按钮,我现在只对登录感兴趣 问题答案: 遇

  • 问题内容: 我已经在Swift中实现了一个使用字典键的Set。我想实现一个addAll(sequence)方法,该方法在Set中的Elements上采用任何序列类型,但是出现一个没有意义的错误。这是我的代码 我在XCode 6.1和6.0.1中遇到此错误。 我想遵循Array的extend方法的语义,但是该类型签名甚至不为我编译。 我做错了什么,还是应该提交雷达? 编辑 :刚刚找到https://

  • 问题内容: 现在,node.js支持ECMAScript Harmony生成器, 我们可以在Haskell中简洁地编写ala代码单子代码了: 在上面的代码中,有一个函数可用于创建 确定性 单子,例如: 您现在可以按以下方式使用: 上面的函数接受两个字符串,将它们转换为列表,然后压缩它们。如果有错误,则立即返回。它取决于以下功能: 我们对其进行测试,以检查其是否可以正常工作: 同样,我们可以创建任何