Я пытаюсь создать тест Selenium для входа в аккаунт. Каждый раз, когда нажимается кнопка «Продолжить», он говорит:
нет такого элемента: Невозможно найти элемент: {"method":"xpath","selector":"//INPUT[@id='password']"}
и остается на странице электронной почты, не перемещается на страницу пароля. Хотя xpath текстового поля «пароль» правильный. Мой код ниже.
логин
public class login {
WebDriver driver;
public login(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}
@FindBy(xpath="//LI[@data-cy='account']")
WebElement CreateorLoginButtonXpath;
@FindBy(xpath="//INPUT[@id='username']")
WebElement EmailTextBoxXpath ;
@FindBy(xpath="//BUTTON[@class='capText font16']")
WebElement ContinueButtonXpath;
@FindBy(xpath="//INPUT[@id='password']")
WebElement PasswordTextBoxXpath;
@FindBy(xpath="//BUTTON[@data-cy='login']")
WebElement LoginButtonXpath;
public void clickCreateorLoginButtonXpath()
{
CreateorLoginButtonXpath.click();
System.out.println("login or create button is clicked");
}
public void TypeEmailTextBoxXpath(String email)
{
EmailTextBoxXpath.sendKeys(email);
System.out.println("email is typed");
}
public void clickContinueButtonXpath()
{
ContinueButtonXpath.click();
System.out.println("Continue Button is clicked");
}
public void TypePasswordTextBoxXpath(String password)
{
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(PasswordTextBoxXpath)).sendKeys(password);
System.out.println("Password is given");
}
public void clickLoginButtonXpath()
{
LoginButtonXpath.click();
System.out.println("Login Button is clicked");
}
}
основной класс
public class RunloginTestCase {
WebDriver driver = new ChromeDriver();
login lg = new login(driver);
@BeforeTest
public void openBrowser() throws InterruptedException
{
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("https://www.makemytrip.com/");
System.out.println("Broweser opened");
}
@Test
public void loginTestPositive() throws InterruptedException
{
lg.clickCreateorLoginButtonXpath();
lg.TypeEmailTextBoxXpath("test1992@test.com");
Thread.sleep(2000L);
lg.clickContinueButtonXpath();
driver.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS) ;
lg.TypePasswordTextBoxXpath("!Qwerqwer1");
lg.clickLoginButtonXpath();
Thread.sleep(3000L);
lg.clickSkipVerificationPopupPageButtonXpath();
}
}