Ситуация такая: при заходе на сайт требуется Basic Authorization, после прохода которой загружается страница с инпутами email и password и кнопка сабмит.
Basic Authorization прохожу используя
driver.navigate().to("https://user:pass@link");
Открывается страница с формой, но при попытке ввода данных через .sendKeys ничего не получается и IntelliJ IDEA выдает ошибку java.lang.NullPointerException
Не могу понять в чем ошибка.
Valentin_G
(Valentin G )
06.Январь.2019 20:10:05
#2
Было бы неплохо увидеть код теста, и собственно строку, на которой падает.
Предварительная причина проблемы - WebElement или PageObject не инициирован.
1 лайк
Страница с формой
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class DmLoginPage {
private WebDriver driver;
public DmLoginPage(WebDriver driver) {
this.driver = driver;
}
private By loginInput = By.xpath("//input[@id='login-login']");
private By loginPass = By.xpath("//input[@id='login-password']");
private By loginButton = By.xpath("//input[@id='login-submit']");
public DmPage enterDM(String email, String pass){
driver.findElement(loginInput).sendKeys(email);
driver.findElement(loginPass).sendKeys(pass);
driver.findElement(loginButton).click();
return new DmPage(driver);
}
}
Сам тест
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class DmPageTest {
private WebDriver driver;
private DmLoginPage dmLoginPage;
private DmPage dmPage;
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "D:\\vlada\\automate\\p2h_unit_tests\\drivers\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.navigate().to("https://xx:pass@devmarkup.com/dev-login.html");
}
@Test
public void searchTask() {
dmLoginPage.enterDM("test-manager@p2h.com", "PJAsEQCF");
dmPage.enterTaskNum("190104441247");
dmPage.searchTask();
dmPage.enterProject();
}
Valentin_G
(Valentin G )
06.Январь.2019 20:18:19
#4
Как и говорил, где у вас инициализируются данные PageObjects:?
private DmLoginPage dmLoginPage;
private DmPage dmPage;
Инициизируйте их либо в Setup методе, если они будут использоваться в нескольких тестах, либо в начале данного теста.
3 лайка