Java Selenium WebDriver Command Cheat Sheet

Frequently used java selenium commands – Cheat Sheet

Visit python selenium commands cheat sheet here.

Driver setup:

Firefox:

System.se­tPr­ope­rty­(“we­bdr­ive­r.g­eck­o.d­riv­er”, “­Pat­h To­ g­eck­odr­ive­r”);

To download: Visit GitHub

Chrome:

System.se­tPr­ope­rty­(“we­bdr­ive­r.chrome.d­riv­er”, “­Pat­h To­ chromedr­ive­r”);

To download: Visit Here

Internet Explorer:

System.se­tPr­ope­rty­(“we­bdr­ive­r.ie.d­riv­er”, “­Pat­h To­ IEDriverServer.exe”);

To download: Visit Here

Edge:

System.se­tPr­ope­rty­(“we­bdr­ive­r.edge.d­riv­er”, “­Pat­h To­ MicrosoftWebDriver.exe”);

To download: Visit Here

Opera:

System.se­tPr­ope­rty­(“we­bdr­ive­r.opera.d­riv­er”, “­Pat­h To­ operadriver”);

To download: visit GitHub

Safari:

SafariDriver now requires manual installation of the extension prior to automation

Chrome Browser Arguments:

–headless

To open browser in headless mode. Works in both Chrome and Firefox browser

–start-maximized

To start browser maximized to screen. Requires only for Chrome browser. Firefox by default starts maximized

–incognito

To open private chrome browser

–disable-notifications

To disable notifications, works Only in Chrome browser

Example:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--start-maximized");
chromeOptions.addArguments("--disable-notifications");
chromeOptions.addArguments("--incognito");

or

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--incognito","--start-maximized","--headless");

Auto Download

Chrome Browser

HashMap<String, String> prefs = new HashMap<String, String>();
prefs.put("download.default_directory", "/data/FolderToDownload");

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("prefs",prefs);

ChromeDriver driver = new ChromeDriver(chromeOptions);

Firefox Browser

FirefoxProfile firefoxProfile = new FirefoxProfile();

firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.dir", "/data/WorkArea/FolderToDownload");
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel,application/csv,application/vnd.key,application/zip,application/pdf,application/xml");
firefoxProfile.setPreference("pdfjs.disabled", true);

FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setProfile(firefoxProfile);
	
FirefoxDriver driver = new FirefoxDriver(firefoxOptions);

We can add any MIME types in the list

Note:

The value of browser.download.folderList can be set to either 0, 1, or 2.

0 – Files will be downloaded on the user’s desktop.
1 – Files will be downloaded in the Downloads folder.
2 – Files will be stored on the location specified for the most recent download

Firefox Browser Settings

Private browser in Firefox:

FirefoxProfile firefoxProfile = new FirefoxProfile();

firefoxProfile.setPreference("browser.privatebrowsing.autostart", true);
firefoxOptions.setProfile(firefoxProfile);

Note: you may not see any indication that browser is private. To check, type ‘about:config’ and search for ‘browser.privatebrowsing.autostart’

Disable notifications in Firefox

firefoxOptions.addPreference(“dom.webnotifications.serviceworker.enabled”, false);
firefoxOptions.addPreference(“dom.webnotifications.enabled”, false);

Read Browser Details:

driver.getTitle();
driver.getWindowHandle();
driver.getWindowHandles();
driver.getCurrentUrl();
driver.getPageSource();

Go to a specified URL:

driver.get(“http://google.com”)
driver.navigate().to(“http://google.com”)
driver.navigate().to(new URL(“http://google.com”))
driver.navigate().back()
driver.navigate().forward()
driver.navigate().refresh()

Locating Elements:

driver.findEelement(By) – To find the first element matching the given locator argument. Returns a WebElement

driver.findElements(By) – To find all elements matching the given locator argument. Returns a list of WebElement

By ID

<input id=”q” type=”text”>…</input>

WebElement element = driver.findElement(By.id(“q”))

By Name

<input id=”q” name=”search” type=”text” />

WebElement element = driver.findElement(By.name(“search”));

By Class Name

<div class=”username” style=”display: block;”>…</div>

WebElement element = driver.findElement(By.className(“username”));

By Tag Name

<div class=”username” style=”display: block;”>…</div>

WebElement element = driver.findElement(By.tagName(“div”));

By Link Text

<a href=”#”>Refresh</a>

WebElement element = driver.findElement(By.linkText(“Refresh”));

By Partial Link Text

<a href=”#”>Refresh Here</a>

WebElement element = driver.findElement(By.partialLinkText(“Refresh”));

By XPath

<form id=”testform” action=”submit” method=”get”>

Username: <input type=”text” />
Password: <input type=”password” />

</form>

WebElement element = driver.findElement(By.xpath(“//form[@id=’testform’]/input[1]”));

By CSS Selector

<form id=”testform” action=”submit” method=”get”>

<input class=”username” type=”text” />
<input class=”password” type=”password” />

</form>

WebElement element = driver.findElement(By.cssSelector(“form#testform>input.username”));

Java Selenium commands for operation on Elements

button/link/image

click()
getAttribute()
isDisplayed()
isEnabled()

Text field

sendKeys()
clear()

Checkbox/Radio

isSelected()
click()

Select

Select select = new Select(WebElement);

select.selectByIndex();
select.selectByValue();
select.selectByVisibleText();

select.deselectAll();
select.deselectByIndex();
select.deselectByValue();
select.deselectByVisibleText();

getFirstSelectedOption()
getAllSelectedOptions() – Returns List

Element properties

isDisplayed()
isSelected()
isEnabled()

Read Attribute

getAttribute(” “)

Get attribute from a disabled text box

driver.findElement(By).getAttribute(“value”);

Screenshot

image storage without using any extra libraries.

TakesScreenshot takeScreenshot = (TakesScreenshot) driver;

File file = takeScreenshot.getScreenshotAs(OutputType.FILE);

FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(new File(System.getProperty("user.dir")+"/test.jpg"));

int cursor;
while((cursor=fis.read())!=-1) {
	fos.write(cursor);
}
fos.close();
fis.close();

Universal Wait

WebDriverWait webDriverWait = new WebDriverWait(driver, seconds);

webDriverWait.until(new ExpectedCondition() {
	public Boolean apply(WebDriver webDriver) {
		return ((JavascriptExecutor) webDriver)
				.executeScript("return document.readyState").toString().equals("complete");
     }
});

Wait using jQuery

WebDriverWait webDriverWait = new WebDriverWait(driver, seconds);

webDriverWait.until(new ExpectedCondition() {
	public Boolean apply(WebDriver webDriver) {
		if((Boolean)((JavascriptExecutor)webDriver).executeScript("return window.jQuery != undefined ")) {
			return ((Long) ((JavascriptExecutor) webDriver).executeScript("return jQuery.active") == 0);
		} else {
			return true;
		}
	}
});

Note: jQuery must be defined in Web page otherwise WebDriverException will be thrown. Hence first validate jQuery is defined then check for async calls

The list here contains mostly used java selenium commands but not exhaustive. Please feel free to add in comments if you feel something is missing and should be here.

Leave a Reply

avatar
  Subscribe  
Notify of