Здравствуйте! Только начинаю осваивать автоматизацию и java. Уже несколько дней не могу решить проблему
- Есть несколько классов с методами
public class HomePage implements Xpath {
WebDriver webDriver;
WebDriverWait webDriverWait;
public HomePage(WebDriver webDriver, WebDriverWait webDriverWait) {
this.webDriver = webDriver;
this.webDriverWait = webDriverWait;
}
public void NavigateToLandinhPage(String Environment) {
webDriver.get(Environment);
}
public void NavigateCharts() {
webDriverWait.until(ExpectedConditions.presenceOfElementLocated(chartsButton));
webDriver.findElement(chartsButton).click();
}
public void NavigateJoinFree() {
webDriverWait.until(ExpectedConditions.presenceOfElementLocated(joinFreeButton));
webDriver.findElement(joinFreeButton).click();
}
public void NavigateToLogIn() {
webDriverWait.until(ExpectedConditions.presenceOfElementLocated(logInButton));
webDriver.findElement(loginButton).click();
}
}
public class LogInPage implements Xpath {
WebDriver webDriver;
WebDriverWait webDriverWait;
public LogInPage(WebDriver webDriver, WebDriverWait webDriverWait) {
this.webDriver = webDriver;
this.webDriverWait = webDriverWait;
}
public void LogIn(String logIn, String password) {
webDriver.findElement(loginField).sendKeys(logIn);
webDriver.findElement(passwordField).sendKeys(password);
webDriver.findElement(loginButton).click();
}
}
- Есть класс MainTest от которого наследуються все остальные тестовые классы
public class MainTest implements TestsInterface {
WebDriver webDriver;
WebDriverWait webDriverWait;
HomePage homePage;
TestMethods waitDOM;
LogInPage logInPage;
@BeforeSuite
public void setUp() {
WebDriverManager.chromedriver().setup();
webDriver = new ChromeDriver();
webDriverWait = new WebDriverWait(webDriver, timeOutSeconds);
System.out.println("WebDriver setup process is completed");
}
@BeforeTest
public void profileSetup() {
waitDOM = new TestMethods(webDriver, webDriverWait);
homePage = new HomePage(webDriver, webDriverWait);
logInPage = new LogInPage(webDriver, webDriverWait);
webDriver.manage().window().maximize();
System.out.println("The profile setup process is completed");
}
@AfterSuite
public void cleanUp() {
webDriver.quit();
System.out.println("The close_up process is completed");
}
}
- Тестовые класы
public class HomePageTest extends MainTest {
@Test
public void landing() {
homePage.NavigateToLandinhPage(Environment);
}
@Test
public void navigateToLogIn() {
waitDOM.waitForPageLoaded();
homePage.NavigateToLogIn();
}
}
public class LogInTest extends MainTest {
@Test
public void LogIn() {
logInPage.LogIn(logIn, password);
waitDOM.waitForPageLoaded();
}
}
- Собственно testng.xml
<suite name="TestSuite">
<test name="Auto Test">
<classes>
<class name="HomePageTest">
<methods>
<include name="landing"/>
<include name="navigateToLogIn"/>
</methods>
</class>
<class name="LogInTest"/>
</classes>
</test>
</suite>
Всегда после выполнения первого класса, на втором падает NullPointerException. Вероятно ошибка где то в testng.xml или же в анотация в Main Test, но не могу поянть в чем именно. Пробывал различные вариации анотаций но ничего не помогло, либо никакой класс не раниться либо только первый