我们可以在 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
。
我们可以在 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
。