【问题标题】:Java Selenium Webdriver: Is there some form of get for implicitWait and if not why not?Java Selenium Webdriver:对于implicitWait 是否有某种形式的get,如果没有,为什么不呢?
【发布时间】:2018-08-19 21:58:46
【问题描述】:

我会给你一点背景。对于大多数操作,我很高兴并且测试似乎相当稳定,4s 隐式等待。

但是,有时我知道如果要在页面上显示该元素,它已经存在,因此,例如,如果我正在对元素列表进行操作,我希望驱动程序不要等待4s 让每个元素确定它不存在并继续前进。

因此,虽然我可以设置 driver.manage().timeouts().implicitlyWait(100, TimeUnit.MILLISECONDS) 并快速浏览列表,但我想在完成解析后将implicitlyWait 设置回其初始值名单。

是的,您可以控制每个项目的一些默认设置并传递它们,但是当您想要对其他依赖并设置自己的默认值的顶级项目执行此操作时并不总是那么容易。

我做了一些阅读,每个人似乎都同意每次运行可以多次设置此超时。 Selenium 现在已经很成熟了,所以我错过了什么?为什么要提供一个没有 getter 的 setter?

【问题讨论】:

  • 因为您可以轻松地将变量设置为项目默认值,并在没有getter 的情况下随时获取它。无论如何,您真的不应该使用隐式等待。 Selenium 贡献者在许多不同的 Selenium conf 会谈中说了很多次。你应该更喜欢WebDriverWaits。

标签: java selenium-webdriver


【解决方案1】:

没有这种方法,坦率地说,不需要。但是,如果您出于某种奇特的原因需要它,则必须自己实现它。

假设您有一些用于驱动程序实例化和设置公共属性的基类,例如等待等。在那里,您可以创建一个 timeOut 变量及其 getter 和 setter 方法。在以后的课程中,您可以在任何地方调用 getWait()。

int timeout = 0;
    public void setWait(int timeout) {
        this.timeout = timeout;
        this.manage().timeouts().implicitlyWait(timeout, TimeUnit.SECONDS);
    }
    public int getWait() {
        return timeout;
    }

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多