Creating new instance of firefox driver 

WebDriver driver = new FirefoxDriver(); 

Creating new instance of Chrome driver

System.setProperty("webdriver.chrome.driver","system.getProperty(user.dir)+D:\\....\\Chromedriver.e");

WebDriver driver = new ChromeDriver(); 

Creating new instance of IE driver

System.setProperty("webdriver.ie.driver", "D:\\....\\IEDriverServer.exe");

WebDriver driver = new InternetExplorerDriver();

Command to open URL in browser 

driver.get("http://www.---.com");

Clicking on an element 

driver.findElement(By.xpath(" ")).click();

Storing text of targeted element in a variable 

String var = driver.findElement(By.id("")).getText();

Typing text in text box driver.findElement(By.name(" ")).sendKeys("mylastname");

Implicit wait 

driver.manage().timeouts().implicityWait(15,TimeUnit.SECONDS)

Explicit wait 

WebDriverWait wait == new WebDriverWait(driver,15)

wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath(""), "Download complete")

alertToBePresent, elementToBeClickable, elementToBeSelected, visibilityof ElementLocated, presenceOfElementLocated

Fluent wait

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) .withTImeOut(Duation.ofSeconds(10)) .pollingEvery(Duation.ofSeconds(10)) .ignoring(NoSuchElementException.class);

Get page title 

driver.getTitle();

Get Current Page URL 

driver.getCurrentUrl();

Get domain using java script executor 

JavaScriptExecutor executor = (JavaScriptExecutor) driver; 

String currentURL = (String)executor.executeScript("return document.domain");

Generate alert using java script executor 

JavaScriptExecutor executor = (JavaScriptExecutor) driver; 

executor.executScript("alert("Test Case Execution is started now..");");

Selecting or Deselecting value from drop down 

Select drpdwn = new Select(driver.findElement(By.id(" "))); 

drpdwn.(de)selectByVisibleText("Audi"); 

drpdwn.(de)selectByIndex(1); 

drpdwn.(de)selelctByValue("Italy");

Removing all selections from listbox 

Select listbox = new Select(driver.findElement(By.xpath(" "))); listbox.deselectAll();

Checking whether a select box is multiselect 

boolean value = listbox.isMultiple();

Navigate to backward or forward 

driver.navigate().to(" "); 

driver.navigate().back(); 

driver.navigate().forward();

Verify whether a element present 

Boolean isElementPresenet = driver.findElements(By.xpath(" ")).size()!=0;

Capturing screenshot 

File screenshot = ((TakesScreenShot)driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(sceenshot, newFile("D:\\ "));

Generating mouse hover event Actions 

actions = new Actions(driver); 

WebElement menu = driver.findElement(By.xpath(" "));

actions.moveToElement(menu).build().perform();

Handling multiple windows file 


Set<String> AllWindows = driver.getWindowHandles();

String pWindow = (String)AllWindows.toArray()[0]; 

String cWindow = (String)AllWindows.toArray()[1]; 

driver.swithTo().window(cWindow);


String parent=driver.getWindowHandle(); // to get the parent window name

// Now iterate using Iterator

Iterator<String> I1= allWindows.iterator();
while(I1.hasNext())
{

String child_window=I1.next();


if(!parent.equals(child_window))
{
driver.switchTo().window(child_window);

System.out.println(driver.switchTo().window(child_window).getTitle());

driver.close();
}

}

Check whether an element is enabled or disabled 

boolean fname = driver.findElement(By.xpath(" ")).isEnabled();

Assertions with TestNG framework 

Assert.assertEquals(actual, expected) - to assert actual and expected values are equal

 Assert.assertNotEquals(actual, expected) - to assert not equal values

Assert.assertTrue(condition) - works for boolean value true assertion 

Assert.assertFalse(condition) - works for boolean value false assertion

Submitting a form 

driver.findElement(By.xpath(" ")).submit();

Handling alerts String 

myalert = driver.switchTo().alert().getText(); 

driver.switchTo().alert().accpet(); 

driver.switchTo().alert().dismiss(); 

driver.switchTo().alert().sendKeys(" ");

Handling drag and drop 

Actions ac = new Actions(); 

ac.dragAndDrop(driver.findElement(By.id("draggable"), driver.findElement(By.id("droppable")))).

build.perform();

Handling the frames 

driver.switchTo().frame("frameid/name/index"); //to enter the frame driver.switchTo().defaultContent(); //to exit the frame

Calendar popups 

driver.findElement(By.id("calendar_icon 1")).click();

 driver.findElement(By.xpath("//div[@id='CalendarControl']/table/tbody[tr[td[text()='Octoer 2012']]]] /descendant::a[text()='5'])).click();

Context click (Right Click) 

WebElement parentMenu = driver.findElement(By.linkText("Srinivas")); 

Actions act = new Actions(driver); 

act.contextClick(parentMenu).build().perform();

act.sendKeys(Keys.ARROW_DOWN).build().perform(); 

Thread.sleep(1000); 

act.sendKeys(Keys.ENTER).build().perform();

Auto IT 

WinWaitActivate("Authentication Required") 

Send("admin") Send("{TAB} admin {TAB} {ENTER}") 

Save the file as 'Authentication.exe' 

Calling .exe file in selenium 

Process P = Runtime.getRuntime().exec("D:\\....\\Authentication.exe");

File Download using RobotClass 

Robot robot = new Robot(); 

robot.KeyPress(KeyEvent.VK_ALT); 

robot.KeyPress(KeyEvent.VK_S); 

robot.KeyRelease(KeyEvent.VK_ALT); 

robot.KeyRelease(KeyEvent.VK_S); 

Thread.sleep(2000); 

robot.KeyPress(KeyEvent.VK_ENTER); 

robot.KeyRelease(KeyEvent.VK_ENTER); 

Thread.sleep(2000);

File upload using webDriver 

WebElement fileInput = driver.findElement(By.xpath("//input[@type='file'][@name='photfile']")); fileInput.sendKeys("D:\\.....\\Desert.jpg"); Thread.sleep(2000);

Scrolling 

Actions ac = new Actions(driver); ac.KeyDown(Keys.CONTROL).sendKeys(Keys.HOME).build().perform(); ac.KeyDown(Keys.CONTROL).sendKeys(Keys.END).build().perform(); (OR) WebElement element = driver.findElement(By.xpath("scroll bar locator")); ac.moveToElement(element).clickANDHold().moveByOffset(x,y).release().perform();

Fluent Wait

FluentWait <WebDriver> wait = new FluentWait<WebDriver>(driver) .withTImeOut(30,SECONDS); .pollingEvery(5,SECONDS); .ignoring(NoSuchElementException.class)

Sample X paths

//input[contains[@name,'Name')] //input[starts_with(@name, txt')] //input[@name = 'txtUserName'] //table[@id = 'Table_o1']/tbody/tr/td[2]/input //a[contains(text(), "RRR")]

Clicking on web element WebElement element = driver.findElement(By.id("id of webelement")); JavaScriptExecutor js = (JavaScriptExecutor) driver; js.executeScript("arguments[0].click();", element);

Typing in text box js.execteScript("document.getElementById('id of the eleement').value='test data';"); Scrolling down js.executeScript("arguments[0].scrollIntoView(true);", element);

Scroll to an element

((JavascriptExecutor) driver).executeScript(

"arguments[0].scrollIntoView();", element);

Scroll to bottom of the page

((JavascriptExecutor) driver)

.executeScript("window.scrollTo(0, document.body.scrollHeight)");


Scroll to coordinates

((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)");

DB Connection

Connection con = DriverManager.getConnection(“url”,”name’,”password”);

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(“”);

While(rs.next())

String empID = rs.getString(1);

String ename = rs.getString(2);

S.O.S(empID + “ “+ename); 

}

Exceptions

Throwable -> Exception , Error

CompileTimeException -> IOException, SQLException, ClassNotFoundException, FileNotFoundException, RunTimeException

RunTimeException -> Arithmetic Exception, NullPointer Exception, NumberFormat Exception, IndexOutOfBoundsException

IndexOutofBoundsException-> ArrayIndexOutofBoundException, StringIndexOutofBoundException

Error -> StackOverflowError, OutofMemoryError, VirtualMachineError

Checked Exceptions(Compile time exceptions) – 

IOException, SQLException, ClassNotFoundException,  FileNotFoundException

Unchecked exceptions(Run time exceptions) – 

ArithmeticException, NullPointer, ArrayIndexOOB

Try, Catch, Throw, Throws, finally

Selenium Exceptions

NoSuchElementException

NoSuchFrameException

NoSuchWindowException

NoAlertPresentException

SessionNotFoundException

StaleElementReferenceException

ElementNotVisibleException


Reading excel file

FileInputStream excel = new FileInputStream(d:\....);

Workbook wb = new Workbook(excel);

Sheet sh = wb.getSheet(0);

Int rows = sh.getLastRowNum();

Int columns = sh.getRow(0).getLastCellNum();

for(int i=0;i<=rows; i++)

{ for(int j=1;j<=columns, j++)

{ String cellData = sh.getRow(i).getCell(j).getStringCellValue();

}

Report Utils

Org.testng.ITestListener;

Org.testng.ITestContext;

Org.testng.ITestResult;

public class Listner implements ITestListener, ITestContext, ITestResult;

public void onStart(ITestContext arg0)

Reporter.log(“About to start execution” +arg0.getName(), true)

}

public void onFinish(ITestContext arg0)

Reporter.log(“About to start execution” +arg0.getName(), true)

}

public void onTestFailure(ITestResult arg0)

Reporter.log(“TestName” +arg0.getTestName(), true);

}

public void onTestSkipped(ITestResult arg0)

{

printTestResults(arg0); }

public void onTestStart(ITestResult arg0)

{ }

public void onTestSuccess(ITestResult arg0)

{

printTestResults(arg0)

}

Selenium Grid (Parallel testing)

java -jar selenium-server-standalone-2.54.0.jar -role hub http://localhost:4444/grid/console java -jar selenium-server-standalone-2.54.0.jar -role node -hub http://localhost:4444/grid/register -port 5556

import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.Platform; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; 

pubic class Grid 

public static void main(String[] args) throws Exception {

DesiredCapabilities caps = null;

if(browserType.equals(“firefox”)

{

Caps = DesiredCapabilities.firefox();

****caps.setBrowserName(“firefox”); caps.setVersion("50"); caps.setPlatform(Platform.WINDOWS);

}

 else

{

Caps = DesiredCapabilities.internetExplorer ();

****caps.setBrowserName(“iexplore”); caps.setVersion("50"); caps.setPlatform(Platform.WINDOWS);

URL urlHub=null; 

try 

urlHub = new URL(" http://localhost:4444/wd/hub"); 

catch(MalformedURLException e) 

e.printStackTrance(); 

RemoteWebDriver driver = new RemoteWebDriver(urlHub, caps); 

driver.navigate().to(" "); 

Thread.sleep(3000); 

System.out.println(driver.getTitle()); 

driver.quit(); 

}

TestNG.xml for Serial and Parallel execution

<suite name=”Grid Sample Test” thread-count=2> //Serial exection

<suite name=”Grid Sample Test” parallel=”tests” thread-count=2> //parallel execution

<test name = “Grid serial(parallel) execution with browser chrome>

<parameter name = “browserType” value=”Chrome”>

<classes>

 <class name = “GridExample>

<classes>

<test>

<test name = “Grid serial(parallel) execution with browser edge>

<parameter name = “browserType” value=”Edge”>

<classes>

<class name = “GridExample>

<classes>

<test>

Grouprun.xml

<suite name = “GroupRun”>

<test name = “GroupRun”>

<groups>

<run>

<include name=”Regression”>

<exclude name=”smoke”>

</run>

</groups>


WebDriver extends Search context

Remote WebDriver implements WebDriver, TakesScreenShot, JavaScriptExecutor, Chrome, IE, Firefox drivers extend WebDriver


org.openqa.selenium.By


com.pearson.adam.pages

--Loginpage.java

--Homepage.java

--DashboardPage.java

--StudentSearchPage.java

--StudentDetailsPage.java


com.pearson.adam.testscripts

--Login_TC1.java

--StudentSearch_TC2.java


TestData

TestReports

pom.xml

TestNG.xml


public class GoogleHomePage {

private WebDriver driver;

public GoogleHomePage( WebDriver driver ) {       

       this.driver = driver;      

       PageFactory.initElements(driver, this);

   }

   @FindBy(how = How.NAME, using = "q")

   WebElement searchBox;  


   @FindBy(how = How.NAME, using = "btnK")

   WebElement submit;


   public void search()

   {

       searchBox.sendKeys("TestGrid");

   }


   public void submit()

   { 

       submit.click();

   }

}



Selenium RC 

Start selenium server C:\cd SeleniumRC (Path of the jar file) C:\cd SeleniumRC>Seleniumserver>java -jar selenium-server.jar 

Changing the port number 

java -jar selenium-server.jar-port 1212 To shut down server: Ctrl+C

RC Basic program 

import org.openqa.selenium.server.*; 

import com.thoughtworks.selenium.*; 

public class basicRCprog 

public static void main(String[] args)throws Exception 

RemoteControlConfiguration rc = new RemoteControlConfiguration(); 

rc.setPort(5555); 

SelenimServer objserver = new SeleniumServer(); 

Selenium objselenium = new DefaultSelenium("localhost", 4444, "*firefox","http://...."); objserver.start(); 

objselenium.start(); 

objselenium.windowmaximize(); 

objselenium.open("http://..."); 

objselenium.type("txtUserName", "selenium"); 

objselenium.type("txtPassword", "selenium"); 

objselenium.click("Submit"); 

objSelenium.waitForPageToLoad("2000");

 objselenium.click("link=Logout"); 

objselenium.stop(); 

objserver.stop(); } }




public clas0