首页 > 解决方案 > 我们可以在类中初始化 WebDriverWait

问题描述

我们可以在类中使用 initialize [WebDriverWait wait=new WebDriverWait(driver,10);] WebDriverWait 吗?

假设在一个类中我有 10 个方法,所以我不是在每个方法中初始化等待 10 次,而是在所有方法之外和类内初始化一次。

我有一个框架,我从 Excel 表中读取数据并运行测试方法。现在,当我在方法之外初始化等待时,我观察到没有从 excel 读取数据并且浏览器关闭。

它与数据读取器无关。在方法之外初始化等待的一些问题。

同样的情况,我尝试在这 10 种方法中初始化等待,这很好。

有什么理由吗?

标签: javaselenium-webdriverwebdriverwait

解决方案


您不能直接将其初始化为实例变量,除非您有一些WebDriverFactory允许您在初始化对象之前将其传递driver给。new WebDriverWait()但是,您可以尝试在构造函数中初始化它,如下所示:

public class PageObject {
    private WebDriverWait wait;

    public PageObject(WebDriver driver) {
        PageFactory.initElements(driver, this);
        wait = new WebDriverWait(driver, 10);
    }
}

然后wait在你的方法中使用。


推荐阅读