首页 > 解决方案 > 如何在隐式等待中将秒设置为变量

问题描述

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

是否可以将 '10' 设置为变量,以便动态更改它?如果可能怎么办?谢谢!

标签: javaseleniumgroovykeywordkatalon

解决方案


隐式等待是告诉 WebDriver 在尝试查找一个或多个元素(如果它们不是立即可用)时轮询 DOM 一段时间。默认设置为 0,表示禁用。设置后,会在会话的生命周期内设置隐式等待。

它设置为 webdriver 会话的生命周期。

提出您的问题是否可以将“10”设置为变量?

是的,这是可能的。

int a = 10;

driver.manage().timeouts().implicitlyWait(a, TimeUnit.SECONDS);

如果您有这样的静态驱动程序引用,请将这一行包装在一个方法中并传递 int args:

public void wdImplicitWait(int duration){
    driver.manage().timeouts().implicitlyWait(duration, TimeUnit.SECONDS);
}

像这样称呼它:

wdImplicitWait(5);
some web element interaction like click or sendkeys here
wdImplicitWait(3)

如果您的驱动程序不是静态的,请确保传递驱动程序实例引用

public void wdImplicitWait(int duration, WebDriver driver){
        driver.manage().timeouts().implicitlyWait(duration, TimeUnit.SECONDS);
    }

但是不会有任何影响,因为它是为webdriver特定执行设置的整个生命周期。

implicitlyWait所以一次又一次地调用不会有任何影响。

看看官方文档怎么说


推荐阅读