SantoshSelenium1
Selenium code:
Base Class:
public class Base {
public static WebDriver driver;
public Properties pf;
public WebDriver initializeDriver() throws IOException, InterruptedException{
pf = new Properties();
System.out.println(1);
String workSpacePath = System.getProperty("user.dir");
System.out.println(2);
FileInputStream fis = new FileInputStream(workSpacePath +"\\src\\main\\resources\\config\\config.properties");
System.out.println(3);
pf.load(fis);
System.out.println(4);
String browser = pf.getProperty("browser");
//String browser = System.getProperty("browser");
System.out.println(browser);
if(browser.equalsIgnoreCase("chrome")) {
System.out.println("i am from chrome");
System.setProperty("webdriver.chrome.driver", "C:\\Automation\\Selenium\\drivers\\chromedriver_win32\\chromedriver.exe");
//ChromeOptions options = new ChromeOptions();
//options.addArguments("headless");
//driver = new ChromeDriver(options);
driver = new ChromeDriver();
}
else if(browser.equalsIgnoreCase("ie")) {
System.out.println("i am from ie");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
return driver;
}
public void takeScreenshot(String Name) throws IOException{
TakesScreenshot scrShot =((TakesScreenshot)driver);
File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
//Move image file to new destination
File DestFile=new File("C:\\Automation\\"+Name+".png");
//Copy file at destination
FileUtils.copyFile(SrcFile, DestFile);
}
}
Pages Code:
package pages;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class FacebookForgotPage {
WebDriver driver;
private By forgotUsername = By.id("identify_email");
private By userName = By.id("email");
private By userPassword = By.id("pass");
public FacebookForgotPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
//Login
public void username(String uName){
driver.findElement(userName).sendKeys(uName);
}
public void password(String pWord){
driver.findElement(userPassword).sendKeys(pWord);
}
//Forgot
public void forgotUsername(String fUsername){
driver.findElement(forgotUsername).sendKeys(fUsername);
}
}
Testcase Code:
package facebookForgotPage;
import java.io.IOException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import framework.Base;
import pages.FacebookForgotPage;
import pages.FacebookHomePage;
public class ForgotLogin extends Base {
public Logger log = LogManager.getLogger(ForgotLogin.class.getName());
@BeforeMethod(groups = { "Regression" })
public void beforeClass() throws IOException, InterruptedException{
driver = initializeDriver();
driver.get(pf.getProperty("url"));
log.info("screen got opened");
}
@Test(groups = { "Regression" })
public void forgotPageLogin(){
FacebookForgotPage forgotPage = new FacebookForgotPage(driver);
FacebookHomePage homePage = new FacebookHomePage(driver);
homePage.clickForgotLink();
log.info("forgot page opened");
forgotPage.username("santosh@gmail.com");
forgotPage.password("123456");
log.debug("username and password got entered");
}
@AfterMethod(groups = { "Regression" })
public void afterClass(){
driver.quit();
driver = null;
log = null;
}
}
using FindBy
package 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 FacebookForgotPage {
WebDriver driver;
//private By forgotUsername = By.id("identify_email");
//WebElement a = driver.findElement(By.id("identify_email"));
private @FindBy(id = "identify_email")
WebElement forgotUsername;
private @FindBy(id="email")
WebElement loginUsername;
private @FindBy(id="pass")
WebElement loginPassword;
public FacebookForgotPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
//Login Get
public WebElement getUsername(){
return loginUsername;
}
public WebElement getPassword(){
return loginPassword;
}
//Forgot get
public WebElement getForgotUsername(){
return forgotUsername;
}
//setter
public void setUsername(String username){
loginUsername.sendKeys(username);
}
Base Class:
public class Base {
public static WebDriver driver;
public Properties pf;
public WebDriver initializeDriver() throws IOException, InterruptedException{
pf = new Properties();
System.out.println(1);
String workSpacePath = System.getProperty("user.dir");
System.out.println(2);
FileInputStream fis = new FileInputStream(workSpacePath +"\\src\\main\\resources\\config\\config.properties");
System.out.println(3);
pf.load(fis);
System.out.println(4);
String browser = pf.getProperty("browser");
//String browser = System.getProperty("browser");
System.out.println(browser);
if(browser.equalsIgnoreCase("chrome")) {
System.out.println("i am from chrome");
System.setProperty("webdriver.chrome.driver", "C:\\Automation\\Selenium\\drivers\\chromedriver_win32\\chromedriver.exe");
//ChromeOptions options = new ChromeOptions();
//options.addArguments("headless");
//driver = new ChromeDriver(options);
driver = new ChromeDriver();
}
else if(browser.equalsIgnoreCase("ie")) {
System.out.println("i am from ie");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
return driver;
}
public void takeScreenshot(String Name) throws IOException{
TakesScreenshot scrShot =((TakesScreenshot)driver);
File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
//Move image file to new destination
File DestFile=new File("C:\\Automation\\"+Name+".png");
//Copy file at destination
FileUtils.copyFile(SrcFile, DestFile);
}
}
ExtentReporterNG:
public class ExtentReporterNG implements IReporter{
private ExtentReports extent;
public void generateReport(List xmlSuites, List suites, String outputDirectory) {
System.out.println(outputDirectory);
extent = new ExtentReports(outputDirectory + File.separator + "ExtentReportsTestNG.html", true);
for (ISuite suite : suites) {
Map result = suite.getResults();
for (ISuiteResult r : result.values()) {
ITestContext context = r.getTestContext();
buildTestNodes(context.getPassedTests(), LogStatus.PASS);
buildTestNodes(context.getFailedTests(), LogStatus.FAIL);
buildTestNodes(context.getSkippedTests(), LogStatus.SKIP);
}
}
extent.flush();
extent.close();
}
private void buildTestNodes(IResultMap tests, LogStatus status) {
ExtentTest test;
if (tests.size() > 0) {
for (ITestResult result : tests.getAllResults()) {
test = extent.startTest(result.getMethod().getMethodName());
/*test.getTest(). = getTime(result.getStartMillis());
test.getTest().endedTime = getTime(result.getEndMillis());*/
for (String group : result.getMethod().getGroups())
test.assignCategory(group);
String message = "Test " + status.toString().toLowerCase() + "ed";
if (result.getThrowable() != null)
message = result.getThrowable().getMessage();
test.log(status, message);
extent.endTest(test);
}
}
}
private Date getTime(long millis) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(millis);
return calendar.getTime();
}
}
ITestListener:
public class Listener implements ITestListener{
public Logger log = LogManager.getLogger("From Listner");
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
log.info("Test Suite Execution is Done");
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
log.info("Test Suite Exeuction is Started");
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
log.error("Testcase got failed with few errors ");
}
@Override
public void onTestFailure(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("method name:" + result.getMethod().getMethodName());
String name = result.getMethod().getMethodName();
Base obj = new Base();
try {
obj.takeScreenshot(name);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.error("Testcase Failed");
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase Skipped");
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase Execution Started");
}
@Override
public void onTestSuccess(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase execution done");
}
}
public Logger log = LogManager.getLogger("From Listner");
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
log.info("Test Suite Execution is Done");
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
log.info("Test Suite Exeuction is Started");
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
log.error("Testcase got failed with few errors ");
}
@Override
public void onTestFailure(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("method name:" + result.getMethod().getMethodName());
String name = result.getMethod().getMethodName();
Base obj = new Base();
try {
obj.takeScreenshot(name);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.error("Testcase Failed");
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase Skipped");
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase Execution Started");
}
@Override
public void onTestSuccess(ITestResult arg0) {
// TODO Auto-generated method stub
log.info("Testcase execution done");
}
}
package pages;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class FacebookForgotPage {
WebDriver driver;
private By forgotUsername = By.id("identify_email");
private By userName = By.id("email");
private By userPassword = By.id("pass");
public FacebookForgotPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
//Login
public void username(String uName){
driver.findElement(userName).sendKeys(uName);
}
public void password(String pWord){
driver.findElement(userPassword).sendKeys(pWord);
}
//Forgot
public void forgotUsername(String fUsername){
driver.findElement(forgotUsername).sendKeys(fUsername);
}
}
Testcase Code:
package facebookForgotPage;
import java.io.IOException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import framework.Base;
import pages.FacebookForgotPage;
import pages.FacebookHomePage;
public class ForgotLogin extends Base {
public Logger log = LogManager.getLogger(ForgotLogin.class.getName());
@BeforeMethod(groups = { "Regression" })
public void beforeClass() throws IOException, InterruptedException{
driver = initializeDriver();
driver.get(pf.getProperty("url"));
log.info("screen got opened");
}
@Test(groups = { "Regression" })
public void forgotPageLogin(){
FacebookForgotPage forgotPage = new FacebookForgotPage(driver);
FacebookHomePage homePage = new FacebookHomePage(driver);
homePage.clickForgotLink();
log.info("forgot page opened");
forgotPage.username("santosh@gmail.com");
forgotPage.password("123456");
log.debug("username and password got entered");
}
@AfterMethod(groups = { "Regression" })
public void afterClass(){
driver.quit();
driver = null;
log = null;
}
}
using FindBy
package 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 FacebookForgotPage {
WebDriver driver;
//private By forgotUsername = By.id("identify_email");
//WebElement a = driver.findElement(By.id("identify_email"));
private @FindBy(id = "identify_email")
WebElement forgotUsername;
private @FindBy(id="email")
WebElement loginUsername;
private @FindBy(id="pass")
WebElement loginPassword;
public FacebookForgotPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
//Login Get
public WebElement getUsername(){
return loginUsername;
}
public WebElement getPassword(){
return loginPassword;
}
//Forgot get
public WebElement getForgotUsername(){
return forgotUsername;
}
//setter
public void setUsername(String username){
loginUsername.sendKeys(username);
}
ReplyDelete./logs