我们可以在 class 中初始化 WebDriverWait 吗?

Can we initialize WebDriverWait inside class

我们可以在 class 中使用初始化 [WebDriverWait wait=new WebDriverWait(driver,10);] WebDriverWait 吗?

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

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

与数据无关reader。在方法外初始化等待时出现一些问题。

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

有什么理由吗?

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

public class PageObject {
    private WebDriverWait wait;

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

然后在您的方法中使用 wait