My test code has a lot of repetition.
First I login to my page then go to the client registration page. Here you can see the repeated code for login.
For each page I write first login then current page tests.
How do I avoid so much repeated code?
Here is my login page..
package Pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class HomePage
{
private WebDriver driver;
//Page URL
// private static String PAGE_URL="https://54.68.159.20/qmsadm";
@FindBy(name="username")
WebElement username;
@FindBy(name="password")
WebElement password;
@FindBy(className="button")
WebElement button;
public HomePage(WebDriver driver)
{
//initialize elements
PageFactory.initElements(driver, this);
}
public void set_username(String usern)
{
username.clear();
username.sendKeys(usern);
}
public void set_password(String userp)
{
password.clear();
password.sendKeys(userp);
}
public void click_button()
{
button.submit();
}
}
Here is the login test code.
package Test;
import org.testng.annotations.Test;
import Pages.ClientPage;
import Pages.HomePage;
import org.testng.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeTest;
public class ClientTest
{
WebDriver driver;
@BeforeTest
public void setup()
{
System.setProperty("webdriver.firefox.marionette","pathToGeckodriver");
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://54.68.159.204/qmsadm");
}
@Test
public void verify()
{
HomePage home=new HomePage(driver);
home.set_username("");
home.set_password("");
home.click_button();
Assert.assertTrue(driver.getPageSource().contains("Hello Sony George"));
}
}
Here is the user test code.
package Test;
import org.testng.annotations.Test;
import Pages.HomePage;
import Pages.UsersPage;
import org.testng.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeTest;
public class UsersTest
{
WebDriver driver;
@BeforeTest
public void setup()
{
System.setProperty("webdriver.firefox.marionette","pathToGeckodriver");
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://54.68.159.204/qmsadm");
}
@Test
public void verify()
{
HomePage home=new HomePage(driver);
home.set_username("");
home.set_password("");
home.click_button();
Assert.assertTrue(driver.getPageSource().contains("Hello Sony George"));
}
@Test(priority=1)
public void verify1()
{
UsersPage user=new UsersPage(driver);
user.clickOnAdmin();
user.clickonusers();
user.clickonsearch();
Assert.assertTrue(driver.getPageSource().contains("Hello Sony George"));
}
@Test(priority=2)
public void verify2()
{
UsersPage user=new UsersPage(driver);
user.set_username("k");
user.check_uname();
user.set_password("kk");
user.set_list("Database admin [Demo]");
user.set_email("[email protected]");
Assert.assertTrue(driver.getPageSource().contains("Hello "));
}
@Test(priority=3)
public void verify3()
{
UsersPage user=new UsersPage(driver);
user.set_username("k");
user.check_uname();
user.set_password("kk");
user.set_list("none");
user.set_email("[email protected]");
Assert.assertFalse(driver.getPageSource().contains("Hello "));
}
}