我正在使用POM,在我的TestBase类中声明了一些常见的操作,例如click,checkText等。从一个步骤过渡到另一个步骤时,我遇到了问题。为了克服这个问题,我想添加显式等待,我想把它放在TestBase类的常用操作中。我正在编写代码,
对于测试基类,
public WebDriverWait wait = new WebDriverWait(webDriver,10);
在特定页面上;
landingPage.wait.until(ExpectedConditions.visibilityOf(WebElement)
由于TestBase类,我收到错误java.lang.NullPointerException
。可能是我多次使用WebDriver?我不确定,因为我尝试了很多可能但仍然失败了。
请帮帮我。
答案 0 :(得分:0)
我能猜出你的问题。您正在基础中初始化您的等待变量。这里的问题是webDriver在等待初始化时没有初始化。因此,在初始化webdriver变量之前不要初始化等待。您可以在基类中声明它,但不要初始化类似,
public WebDriverWait wait;
您可以在WebDriver初始化之后初始化它,例如,
WebDriver webDriver=new FirefoxDriver();
wait =new WebDriverWait(webDriver, 60);
答案 1 :(得分:-1)
我想你可以在你的基类中使用thread.sleep,如下所示。它还将等待参数中以毫秒为单位指定的给定时间。
导入yourPOMPage;
public class TestBaseClass {
公共WebDriver驱动程序;
//定义obj变量
yourPOMPage obj;
public void methodName()抛出InterruptedException {
obj = new yourPOMPage(driver);//initialized the obj
Thread.sleep(5000);
obj.MethodofPOMPage(); // MethodofPOMPage u must have to create in POM Page
}
}