Advanced Selenium WebDriver & TestNG Cheat Sheet
Advanced Selenium WebDriver & TestNG Cheat Sheet
chromeOptions.addArguments("--ignore-certificate-errors");
chromeOptions.addArguments("user-data-dir=Path");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--start-maximized", "--
incognito","--disable-notifications" );
driver = new ChromeDriver(chromeOptions);
//Desired Capabilities
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(“browserName”, “chrome”);
dc.setCapability(“browserVersion”, “96.0””);
dc.setCapability(“platformName”, “win10”);
WebDriver driver = new ChromeDriver(dc);
Element Locators
driver.findElement(By.id("Id Value"));
driver.findElement(By.name("Name Value"));
driver.findElement(By.className("Class Name Value"));
driver.findElement(By.linkText("Link text Value"));
driver.findElement(By.partialLinkText("Partial Text Constant
Value"));
driver.findElement(By.tagName("Tag Name Value"));
driver.findElement(By.cssSelector("CSS Value"));
driver.findElement(By.xpath("Xpath Value"));
driver.findElement(with(By.tagName("input"))
.above(passwordField));
driver.findElement(with(By.tagName("input"))
.below(emailAddressField));
driver.findElement(with(By.tagName("button"))
.toLeftOf(submitButton));
driver.findElement(with(By.tagName("button")).toRightOf(s
ubmitButton));
driver.findElement(with(By.tagName("input")).near(emailAd
dressLabel));
driver.findElement(new ByAll(By.className("ElementClass
Name"), By.id("Element Id"), By.name("Element Name")))
Elements Operations
WebElement element =
driver.FindElement(By.ElementLocator("Value of Element
Locator"));
element.click();
element.sendKeys("Input Text");
element.clear();
element.submit();
element.getAttribute(“type”);
String innerText = element.getText();
boolean enabledstatus = element.isEnabled();
boolean displayedstatus = element.isDisplayed();
boolean selectedstatus = element.isSelected();
//Operation on drop down
Select select = new Select(element);
select.selectByIndex(Integer Index);
select.selectByVisibleText("Text");
select.SelectByValue("Value");
select.deselectAll();
select.deselectByIndex(Integer Index);
select.deselectByVisibleText("Text");
select.deselectByValue("Value");
WebElement selectedOptions = select.getOptions();
Browser Operations
String pageTitle = driver.getTitle();
String currentURL = getCurrentUrl();
String currentPageSource = driver.getPageSource();
// Navigation history
driver.get("https://www.facebook.com/");
driver.manage().window().maximize();
driver.manage().window().fullscreen();
driver.navigate().to("https://www.google.com/");
driver.navigate().back();
driver.navigate().forward();
driver.navigate().refresh();
driver.close();
driver.quit();
// Handle Alert
Alert alert = driver.switchTo().alert();
alert.accept();
alert.dismiss();
alert.getText();
alert.sendKeys(“Input Data");
//Handle Cookies
Cookie cookie = new Cookie(“cookieName”, “cookieValue”);
driver.manage().addCookie(cookie);
driver.manage().getCookies();
driver.manage().getCookieNamed(arg0);
driver.manage().deleteAllCookies();
driver.manage().deleteCookieNamed(arg0);
// Handle frames
driver.switchTo().frame(int Frame Index);
driver.switchTo().frame("frameName");
WebElement element =
driver.FindElement(By.ElementLocator("Value of Element
Locator"));
driver.switchTo().frame(element);
driver.SwitchTo().defaultContent();
Screenshots Capture
TakesScreenshot screenshot =((TakesScreenshot)driver);
File srcFile= screenshot.getScreenshotAs(OutputType.FILE);
FileHandler.copy(srcFile, destFile);
Actions Class/Mouse Event
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL);
action.keyUp(Keys.CONTROL);
action.clickAndHold(webElement).build().perform();
action.doubleClick(webElement).build().perform();
action.moveToElement(webElement).build().perform();
action.moveByOffset(xOffset,yOffset).build().perform();
action.dragAndDrop(sourceEle,targetEle).build().perform();
action.release().build().perform();
Manage Timeouts
driver.manage().timeouts().implicitlyWait(10,
TimeUnit.SECONDS);
welement = wait.until(Syntax: WebDriverWait wait = new
WebDriverWait(driver, timeout);
ExpectedConditions.elementToBeClickable(locator));
welement.click();
driver.manage().timeouts().pageLoadTimeout(30,
TimeUnit.SECONDS);
Upload a File
WebElement element =
driver.FindElement(By.ElementLocator("Value of Element
Locator"));
element.sendKeys(filePath);
Window Handle
String handle=driver.getWindowHandle();
Set<String> handles = getWindowHandles();
driver.switchTo().window(handle);
Capture Width and Height of an Element
Point point = element.getLocation();
int elementWidth = element.getSize().getWidth();
int elementHeight = element.getSize().getHeight();
Window Handle
String handle=driver.getWindowHandle();
Set<String> handles = getWindowHandles();
driver.switchTo().window(handle);
Scroll Down or Up Web Page
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0,100)");
js.executeScript("window.scrollTo(0,
document.body.scrollHeight)");
WebElement element =
driver.FindElement(By.ElementLocator("Value of Element
Locator"));
js. executeScript("arguments[0].scrollIntoView()", element);
Selenium Grid
//Start hub
java-jar selenium-server- standalone-x.xx.x.jar-role hub
//Start node
java-jar selenium-server- standalone-x.xx.x.jar-role node-
hub
http://localhost:4444/grid/register
//Server
http://localhost:4444/grid/console
TestNG Annotations
@Test
@BeforeMethod
@AfterMethod
@BeforeTest
@AfterTest
@BeforeClass
@AfterClass
@Test(enabled = false)
@Test(enabled = true)
@Test(priority=2)
@Test(priority=5,dependsOnMethods={"method1","method
2"})
@Test(dependsOnMethods = {"method1"}, alwaysRun=true)
@Test (invocationCount = 3)
@Test (invocationCount = 7, threadPoolSize = 2)
TestNG Assertions
SoftAssert softassert= new SoftAssert();
softassert.assertEquals(1, 1);
softassert.assertAll();
Assert.assertEquals(11, 11);
Assert.assertEquals(true, true, "Not Matching");
TestNG XML File
<suite name="TestNGSuite" parallel="methods" thread-
count="4">
<listeners>
<listener class-name="packagename.classname"></listener>
</listeners>
<parameter name="Data1" value="10" />
<parameter name="Data2" value="3" />
<test name="TestNGTest">
<groups>
<run>
<exclude name="Test.*" />
<include name="SmokeTest" />
</run>
</groups>
<classes>
<class name="packagename.classname"/>
</classes>
</test> <!-- TestNGTest -->
</suite> <!-- TestNGSuite -->
Different approach to create XPath and CSS Selector
Description XPath CSS Selector
Whole WebPage /html html
Whole WebPage body /html/body body
image element //img img
Link //a[@href = 'url'] a[href = 'url']
Direct Child //div/a div > a
Id //tagName[@id=’idValue’] tagName#idValue
Class //tagName[@class=’classValu tagName.Value of Class
e’] attribute
Attribute //tagname[@attribute- tagName[attribute=Valu
name=’value1′] e of attribute]
Multiple Attributes //input[@type='submit' and tagname[attribute1='val
@name='btnLogin'] ue1'][attribute2='value2'
]
Contains //*[contains(@type,'sub')] <HTML
tag><[attribute*=sub
String]>
Starts with //tagname[starts- <HTML
with(@attribute, ‘Start tag><[attribute^=prefix
value’)] of the String]>
Ends with //tagname[ends- <HTML
with(@attribute, ‘End value’)] tag><[attribute$=suffix
of the String]>
Matches //*[matches(@type,'value')] N/A