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);
}
}

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");
}
}

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);
}










Comments

Post a Comment

Popular posts from this blog

Handling Excel

Selenium-Revision

JavaInterviewPrograms