Selenium获得当前隐式等待的值

use*_*679 9 selenium webdriver

我意识到Selenium有隐式等待的默认值,但是如果我改变它,我该如何得到这个值?例如:

driver.implicitly_wait( 13 );
Run Code Online (Sandbox Code Playgroud)

我以后如何从驱动程序中获取13值?

Jan*_*all 8

不幸的是,没有吸气剂.

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html

也没有明确的等待.

http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Wait.html

  • 正确答案+1,但这真的很不幸:(,为什么他们没有这个价值的吸气剂...... (2认同)

for*_*nsa 5

我知道我迟到了几年,@JaneGoodall 没有错——没有内置函数。但这并非不可能!

创建您自己版本的 WebDriver 接口和特定于浏览器的驱动程序类并不难。然后,您可以将任何您想要的代码放入驱动程序中!

例子:

MyDriver.java(WebDriver 的专用版本,不是强制性的,但一个很好的主意):

public interface MyDriver extends WebDriver {
    void setWait(int timeout);
    int getWait();
}
Run Code Online (Sandbox Code Playgroud)

MyChrome.java(ChromeDriver 的专用版本——适用于任何浏览器)

public class MyChrome extends ChromeDriver implements MyDriver {
    int timeout = 0;
    public void setWait(int timeout) {
        this.timeout = timeout;
        this.manage().timeouts().implicitlyWait(timeout, TimeUnit.SECONDS);
    }
    public int getWait() {
        return timeout;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,要使用它,MyProgram.java:

public class MyProgram {
    MyDriver driver = new MyChrome();
    driver.setWait(10);
    assert(driver.getWait() == 10);
}
Run Code Online (Sandbox Code Playgroud)

我希望这是有帮助的!