Я пытаюсь проверить функциональность входа в систему для сайта https://www.expedia.com/, используя Selenium WebDriver с Java.Я также использую шаблон дизайна Page Object Factory.
Процедура входа в систему: Перейти на сайт выше -> Щелкните меню «Учетная запись» -> выберите «Войти».Появится новое всплывающее окно входа в систему, где я пытаюсь ввести адрес электронной почты и пароль, используя мой скрипт автоматизации.
Вот мой код, который обрабатывает форму входа Expedia:
LoginPage.java содержит:
{
@FindBy(id = "gss-signin-email")
public WebElement txtUserName;
@FindBy(id = "gss-signin-password")
public WebElement txtPassword;
@FindBy(id = "gss-keep-signin-check-label")
public WebElement chkBoxKeepMeSignIn;
@FindBy(id = "gss-signin-submit")
public WebElement btnSignIn;
public void setUserName(String uname) {
txtUserName.click();
txtUserName.sendKeys(uname);
}
public void setPassword(String pwd) {
txtPassword.click();
txtPassword.sendKeys(pwd);
}
public void setKeepMeSignIn() {
chkBoxKeepMeSignIn.click();
}
public void clickSignIn() {
btnSignIn.click();
}
}
TC_LoginTest_001.java содержит:
{
Page.menu.gotoAccounts();
Page.menu.gotoSignIn();
LoginPage lp = new LoginPage();
driver.switchTo().activeElement();
lp.setUserName(config.getProperty("username"));
lp.setPassword(config.getProperty("password"));
lp.setKeepMeSignIn();
lp.clickSignIn();
}
Когда я запускаю свой скрипт с помощью Run As -> TestNg Suite, я получаю следующее сообщение об ошибке:
**LoginTest
java.lang.NullPointerException
at com.expedia.pages.LoginPage.setUserName(LoginPage.java:42)
at com.expedia.testcases.TC_LoginTest_001.LoginTest(TC_LoginTest_001.java:38)**
Тестовые данные не вводятся в поля ввода (например, адрес электронной почты и пароль).Похоже, мой сценарий не распознает модальную форму.Пожалуйста, предложите, как мне решить эту проблему.