Я новичок в веб-драйвере селена. Я пишу тест для проверки страницы входа. Моя проблема в том, что у меня есть 2 теста, один для правильного входа в систему и один для неверного входа. В идеале они должны быть независимыми, но в моем случае они в одном случае открывают страницу после входа в систему, поэтому другой тест не пройден.
Я пытался перезапустить браузер для каждого теста, но я не думаю, что это идеально.
Страница входа
package com.ninja.pages;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class LoginPage
{
// http://tutorialsninja.com/demo/index.php?route=account/login
WebDriver driver;
@FindBy(how = How.XPATH, using = "//input[@id='input-email']")
WebElement email;
@FindBy(how = How.XPATH, using = "//input[@id='input-password']")
WebElement password;
@FindBy(how = How.XPATH, using = "//input[@class='btn btn-primary']")
WebElement login;
@FindBy(how = How.XPATH, using = "//div[@class='alert alert-danger alert-dismissible']")
WebElement warning;
public LoginPage(
WebDriver driver)
{
this.driver = driver;
}
public String getTitle()
{
return driver.getTitle();
}
public String doLoginValid(String email1, String pwd)
{
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
email.sendKeys(email1);
password.sendKeys(pwd);
login.click();
return driver.getTitle();
}
public String doLoginInValid(String email1, String pwd)
{
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
email.sendKeys(email1);
password.sendKeys(pwd);
login.click();
return warning.getText();
}
}
LoginPageTest
package com.ninja.testcases;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import com.ninja.pages.LoginPage;
import com.ninja.util.BrowserFactory;
public class LoginPageTest
{
static LoginPage loginPage;
static WebDriver driver;
@BeforeAll
public static void makeConnection()
{
driver = BrowserFactory.stratBrowser("chrome");
loginPage = PageFactory.initElements(driver, LoginPage.class);
}
@BeforeEach
public void startWebsite()
{
BrowserFactory.startWebsite("http://tutorialsninja.com/demo/index.php?route=account/login");
assertEquals("Account Login", loginPage.getTitle());
}
@Test
public void testDoLoginValid01()
{
assertEquals("My Account", loginPage.doLoginValid("ram@gmail.com", "Ram@123"));
}
@Test
public void testDoLoginInvalid02()
{
assertEquals("Warning: No match for E-Mail Address and/or Password.",
loginPage.doLoginInValid("ramq@gmail.com", "Ram@123"));
}
@Test
public void testDoLoginInvalid03()
{
assertEquals("Warning: No match for E-Mail Address and/or Password.",
loginPage.doLoginInValid("ram@gmail.com", "Rama@123"));
}
}