Selenium WebDriver is like a magic wand to automation tester to test the web application. Selenium WebDriver has not only made automation more Object oriented through it OOPs API but it has also solve the the most complaining performance of browser launching in Selenium 1.0 and the most important thing that has given a panacea to automation engineers’ hand is its ability to Single Host origin policy.
Selenium WebDriver has left more impact on functional test coverage, like the file upload or download, pop-ups and dialog’s barrier
Today I am going to post most common functions used in Selenium WebDriver to make a journey of automation testing through WebDriver
- IsElementPresent/Text Present function in Selenium WebDriver
- Finding elements by using function that take argument of By class
private boolean isElementPresent(WebDriver driver, By by)
try{
driver.findElement(by);
return true;
}
catch(Exception e)
{
return false;
}
}
- Using the size to decide whether element is there or not
if(driver.findElements(Locator).size()>0
{
return true
}else
{
return false
}
} - Finding the text using the PageSource
driver.PageSource.Contains("TEXT that you want to see on the page");
- Finding elements by using function that take argument of By class
- Finding WebElement by using various locators in WebDriver
- Using ID
WebElement welement = driver.findElement(By.id("Id from webpage"));
- Using Name
WebElement welement = driver.findElement(By.name("Name of WebElement"));
- Using Tag Name
WebElement welement = driver.findElement(By.tagName("tag name"));
- Using Xpath
WebElement welement = driver.findElement(By.xpath("xpath of webElement"));
- Using CSS
WebElement welement = driver.findElement(By.CSS("CSS locator path"));
- Using LinkText
WebElement welement = driver.findElement(By.LinkText("LinkText"));
- Using ID
- IsElementPresent/Text Present function in Selenium WebDriver
- Fetching pop-up message in Selenium-WebDriver
this is the function that would help you in fetching the message
public static String getPopupMessage(final WebDriver driver) {
String message = null;
try {
Alert alert = driver.switchTo().alert();
message = alert.getText();
alert.accept();
} catch (Exception e) {
message = null;
}
System.out.println("message"+message);
return message;
} - Canceling pop-up in Selenium-WebDriver
public static String cancelPopupMessageBox(final WebDriver driver) {
String message = null;
try {
Alert alert = driver.switchTo().alert();
message = alert.getText();
alert.dismiss();
} catch (Exception e) {
message = null;
}
return message;
}
- Fetching pop-up message in Selenium-WebDriver
- Inserting string in Text Field in Selenium-WebDriver
public static void insertText(WebDriver driver, By locator, String value) {
WebElement field = driver.findElement(locator);
field.clear();
field.sendKeys(value);
} - Reading ToolTip text in in Selenium-WebDriver
public static String tooltipText(WebDriver driver, By locator){
String tooltip = driver.findElement(locator).getAttribute("title");
return tooltip;
} - Selecting Radio Button in Selenium-WebDriver
public static void selectRadioButton(WebDriver driver, By locator, String value){ List select = driver.findElements(locator);
for (WebElement element : select)
{
if (element.getAttribute("value").equalsIgnoreCase(value)){
element.click();
}
} - Selecting CheckBox in Selenium-WebDriver
public static void selectCheckboxes(WebDriver driver, By locator,String value)
{
List abc = driver.findElements(locator);
List list = new ArrayListArrays.asList(value.split(",")));
for (String check : list){
for (WebElement chk : abc){
if(chk.getAttribute("value").equalsIgnoreCase(check)){
chk.click();
}}}} - Selecting Dropdown in Selenium-WebDriver
public static void selectDropdown(WebDriver driver, By locator, String value){
new Select (driver.findElement(locator)).selectByVisibleText(value); } - Selecting searched dropdown in Selenium-WebDriver
public static void selectSearchDropdown(WebDriver driver, By locator, String value){
driver.findElement(locator).click();
driver.findElement(locator).sendKeys(value);
driver.findElement(locator).sendKeys(Keys.TAB);
} - Uploading file using Selenium-WebDriver
public static void uploadFile(WebDriver driver, By locator, String path){
driver.findElement(locator).sendKeys(path);
} - Downloading file in Selenium-WebDriver
Here we will click on a link and will download the file with a predefined name at some specified location.
public static void downloadFile(String href, String fileName) throws Exception{
URL url = null;
URLConnection con = null;
int i;
url = new URL(href);
con = url.openConnection();
// Here we are specifying the location where we really want to save the file.
File file = new File(".//OutputData//" + fileName);
BufferedInputStream bis = new BufferedInputStream(con.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(file));
while ((i = bis.read()) != -1) {
bos.write(i);
}
bos.flush();
bis.close();
} - Handling multiple Pop ups
read Handling Multiple Windows in WebDriver - Wait() in Selenium-WebDriver
- Implicit Wait :
driver.manage.timeouts().implicitlyWait(10,TimeUnit.SECONDS);
- Explicit Wait:
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditons.elementToBeClickable(By.id/xpath/name("locator")); - Using Sleep method of java
Thread.sleep(time in milisecond)
- Implicit Wait :
- Navigation method of WebDriver Interface
- to() method (its a alternative of get() method)
driver.navigate().to(Url);
This will open the URL that you have inserted as argument - back() – use to navigate one step back from current position in recent history syntax ==
driver.navigate().back();
- forward() – use to navigate one step forward in browser history
driver.navigate().forward();
- refresh() – This will refresh you current open url
driver.navigate().refresh();
- to() method (its a alternative of get() method)
- Deleting all Cookies before doing any kind of action
driver.manage().deleteAllCookies();
This will delete all cookies
- Inserting string in Text Field in Selenium-WebDriver
- Pressing any Keyboard key using Action builder class of WebDriver
WebDriver has rewarded us with one class Action to handle all keyboard and Mouse action. While creating a action builder its constructor takes WebDriver as argument. Here I am taking example of pressing Control key
Actions builder = new Actions(driver);
When we press multiple keys or action together then we need to bind all in a single command by using build() method and perform() method intend us to perform the action.
builder.keyDown(Keys.CONTROL).click(someElement).click(someOtherElement).keyUp(Keys.CONTROL).build().perform();
In the same way you can handle other key actions. - Drag and Drop action in Webdriver
In this we need to specify both WebElement like Source and target and for draganddrop Action class has a method with two argument so let see how it normally look like
WebElement element = driver.findElement(By.name("source"));
WebElement target = driver.findElement(By.name("target"));
(new Actions(driver)).dragAndDrop(element, target).perform();
Reference site
http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/
Awesome…many IMP commands gathered at one place. Thanks!!!
Great !!!!
keep it up
Thank you…
useful than expected..Thanks a lot.
Very Important for selenium beginners. Thanks..
Awesome collection…thanks dude
It is helpful.
Very helpful. Thanks for having all IMP ones at one place.
This commands are very helpful to us thank u somuchhhhhhhh
HOW TO GENERATE A BUG REPORT AND HOW TO SEND TO THE DEVELPOER
Very Help full commands
awesome information buddy 🙂 learnt a lot and its good for preparing for interviews too
Pingback: WebDriver’s most popular Commands | AutomationChinnu
It’s really helpful. It could be more helpful if you do something for interview preparation like framework overview, question and answer……….
Thanks for your feedback and if you have some short of question that you want to be answered then we can do that
Thanks
Great lists of commands and really it will be more useful for both freshers and working professionals. I would like to visit your blog often and I will share to my friends. Keep rocking!!
@Gopika
Nice to see you like the blog. But please don’t spam…Although it is good that you are trying to train people but there are lot of ways to do that..
Anyways hope to see more views from you in future.
Nice post very useful for students/professionals. As by reading this post them will learn many things about selenium Training.