WebDriver extends Search context
Remote WebDriver implements WebDriver, TakesScreenShot, JavaScriptExecutor
Chrome, IE, Firefox drivers extend RemoteWebDriver
Reading property file
FileReader reader=new FileReader("db.properties");
Properties p=new Properties();
p.load(reader);
System.out.println(p.getProperty("user"));
System.out.println(p.getProperty("password"));
Data Provider
public class DP
{
@DataProvider (name = "login-data")
public Object[][] LoginData(){
Object [][] twitterdata=new Object[2][2];
twitterdata[0][0]="username1@gmail.com";
twitterdata[0][1]="Password1";
twitterdata[1][0]="username2@gmail.com";
twitterdata[1][1]="Password2";
return twitterdata;
}
@Test (dataProvider = "login-data")
public void login (String uname,String password) {
System.setProperty("webdriver.chrome.driver", "");
WebDriver driver = new ChromeDriver();
driver.get("");
driver.fE(by.name("username")).sendKeys(uname);
driver.fE(by.name("password")).sendKeys(pwd);
}
}
Test NG -Parallel Testing
<suite name = "Parallel Testing Suite">
<test name = "Parallel Tests" parallel = "methods" thread-count=5>
<parameter name="browser" value="chrome" />
<parameter name="version" value="79.0" />
<parameter name="platform" value="WIN10" />
<classes>
<class name = "ParallelTest" />
</classes>
</test>
</suite>
Reading from excel
FileInputStream fis=new FileInputStream(new File("C:\\demo\\student.xls"));
XSSFWorkbook wb=new HSSFWorkbook(fis);
XSSFSheet sheet=wb.getSheetAt(0);
jxl - get rows(), XSSF - getlatrownum()
Reading data from table
Connection con = DriverManager.getConnection("jdbc.mysql.880", uname, pwd)
Statement st = con.createStatment();
ResultSet rs = st.executeQuery("select * from orders");
s.o.p(rs.getString(0)+ "\t" + rs.getString(1))
Grid
d:\Docs\Selenium>java -jar selenium-server-standalone-2.52.0.jar -role hub
http://localhost:4444/grid/console - to check whether grid is started
IP Address - 192.168.1.4
for registering a node, open another command prompt and run the command
d:\Docs\Selenium>java -jar selenium-server-standalone-2.52.0.jar -role webdriver -hub http://192.168.1.4:4444/grid/register -port 6577
d:\Docs\Selenium>java -jar selenium-server-standalone-2.52.0.jar -role webdriver -hub http://192.168.1.4:4444/grid/register -port 5466
Data Driven Test
1.Prepare test data in excel
2.Add Apache poi dependency in pom.xml file
3.XL Utility file(java class file) which will read data from excel
4.Write TestNG test with DataProvider method
fi = new FileInputStream(path);
wb = new workbook(fi);
rowCount = wb.getSheet(1).getLastRowNum();
columCount= wb.getSheet(1).getRow(0).getLastCellNum();
@DataProvider(name="xyz")
string[][] readTestData()
{
**string path = System.getProperty("user.dir")+"";
string empData[][]= new String[rowCount][columnCount]
for(int i=0;i<=rowCount-1;i++
{
for(int j=1;j<colCount;j++
{
empData[i][j] = XLUtils.getCellData(i,j);
}
{
@Test(dataProvider="xyz")
public insertData(String empID, String ename, String sal)
{
}
Page Object Model
LoginPage.java
package com.sample.pom.pages;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class LoginPage {
WebDriver driver;
//Constructor
public LoginPage(WebDriver driver)
{
this.driver = driver;
}
//Locators
By loc_txt_name = By.id("username");
By loc_txt_pwd = By.id("password");
By loc_btn_submit = By.xpath("//button[@type='submit']");
//Action methods
public void setUserName(String user)
{
driver.findElement(loc_txt_name).sendKeys(user);
}
public void setPassword(String pwd)
{
driver.findElement(loc_txt_pwd).sendKeys(pwd);
}
public void clickLogin()
{
driver.findElement(loc_btn_submit).click();;
}
}
Login Test.java
package com.sample.pom.tests;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import com.sample.pom.pages.LoginPage;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import java.time.Duration;
public class LoginTest {
WebDriver driver;
@BeforeClass
void Setup()
{
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
driver.get("https://the-internet.herokuapp.com/login");
}
@Test
void testLogin()
{
LoginPage lp = new LoginPage(driver);
lp.setUserName("tomsmith");
lp.setPassword("SuperSecretPassword!");
lp.clickLogin();
String title = driver.getTitle();
Assert.assertEquals(title, "The Internet");
}
@AfterClass
void Teardown()
{
driver.quit();
}
}
Page Factory
LoginPage.java
package com.sample.pagefactory.pages;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class LoginPage {
WebDriver driver;
//Constructor
public LoginPage(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}
//Locators
By loc_txt_name = By.id("username");
By loc_txt_pwd = By.id("password");
By loc_btn_submit = By.xpath("//button[@type='submit']");
@FindBy(id="username")
WebElement txt_username;
@FindBy(id="password")
WebElement txt_password;
@FindBy(xpath="//button[@type='submit']")
WebElement btn_login;
//Action methods
public void setUserName(String user)
{
txt_username.sendKeys(user);
}
public void setPassword(String pwd)
{
txt_password.sendKeys(pwd);
}
public void clickLogin()
{
btn_login.click();;
}
}
LoginTest.Java
package com.sample.pagefactory.tests;
import com.sample.pagefactory.pages.LoginPage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import java.time.Duration;
public class LoginTest {
WebDriver driver;
@BeforeClass
void Setup()
{
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
driver.get("https://the-internet.herokuapp.com/login");
}
@Test
void testLogin()
{
LoginPage lp = new LoginPage(driver);
lp.setUserName("tomsmith");
lp.setPassword("SuperSecretPassword!");
lp.clickLogin();
String title = driver.getTitle();
Assert.assertEquals(title, "The Internet");
}
@AfterClass
void Teardown()
{
driver.quit();
}
}