In this article I will tell you how we can do web automation using selenium in JAVA.
Once you have these softwares with you, You can follow below steps.
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
//import com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutor;
//import org.openqa.selenium.firefox.*;
@SuppressWarnings("unused")
public class SampleTest {
public static void main(String [] arg)
{
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
// System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
//wd = new InternetExplorerDriver();
try{
//Install selenium 2.0 -> https://code.google.com/p/selenium/downloads/list
//Install chromedriver -> https://code.google.com/p/chromedriver/downloads/list
//Install IEDriver -> https://code.google.com/p/selenium/downloads/list
//Get Eclipse -> Java IDE
//***********************************************************************
// List of common operations on web elements
//***********************************************************************
//We will see lot of operation that can be done in selenium
//1.Clicking on the WebElement.
//2.Enter value in editbox WebElement.
//3.Select value from the dropdown WebElement.
//4.Select radiobutton WebElement.
//5.Select the checkbox WebElement.
//6.Clicking/accessing hidden WebElements. -> Make them visible first and then click
//7.How to check if element exists in page.
//8.reading data from table rows, cells etc.
//9.Different ways of accessing elements.
//10.Synchronization methods in selenium in Java.
driver.navigate().to("http://www.google.com");
Thread.sleep(5000);
/* Check if element is present or Not */
Boolean isPresent = driver.findElements(By.id("lst-ib")).size()<0;
System.out.println("Element is present " + isPresent );
/*Check if element is displayed in selenium */
System.out.println ( "Element with id visible -> " + driver.findElement(By.id("gb_51")).isDisplayed());
System.out.println ( "Element with id visible -> " + driver.findElement(By.name("q")).isDisplayed());
/*click on the webelelment */
driver.findElement(By.linkText("News")).click();
/*enter value in the edit box */
driver.findElement(By.name("q")).sendKeys("Selenium");
/*Select value from drop down*/
//Select select=new Select(driver.findElement(By.id("abc")));
//select.selectByVisibleText("=");
/* Peforming mouseOver Event on the WebElement*/
//Actions builder = new Actions(driver);
//Action hoverAction = builder.moveToElement(WE).build();
//hoverAction.perform();
/*Accessing data from webtable */
/*
WebElement r = wd.findElement(By.xpath("//*[@id='acd']/table/thead/tr"));
List<WebElement> cells = r.findElements(By.tagName("th"));
int c = 0;
for (WebElement cell : cells) {
c=c+1;
System.out.println(c + " --> "+ cell.getText() );
if (head.equals(cell.getText()))
break;
}
*/
/*Wait until Element is present */
//WebElement me = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id("myid")));
/*Wait until Element is clickable */
//WebDriverWait wait = new WebDriverWait(driver, 10);
//me = wait.until(ExpectedConditions.elementToBeClickable(By.id("myid")));
/*Implicit waits */
//driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
/* Locating elements */
//WebElement frame = driver.findElement(By.tagName("iframe"));
//List<WebElement> cheeses = driver.findElements(By.className("cheese"));
//WebElement cheese = driver.findElement(By.name("cheese"));
//WebElement element = driver.findElement(By.id("coolestWidgetEvah"));
//WebElement cheese = driver.findElement(By.linkText("cheese"));
//WebElement cheese = driver.findElement(By.partialLinkText("cheese"));
//WebElement cheese = driver.findElement(By.cssSelector("#food span.dairy.aged"));
//List<WebElement> inputs = driver.findElements(By.xpath("//input"));
/*We can also execute java script*/
//WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.cheese')[0]");
//List<WebElement> inputs = (List<WebElement>) ((JavascriptExecutor)driver).executeScript(
// "var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){" +
// "inputs.push(document.getElementById(labels[i].getAttribute('for'))); } return inputs;", labels);
/* Getting all options in drop down */
/*
WebElement select = driver.findElement(By.tagName("select"));
List<WebElement> allOptions = select.findElements(By.tagName("option"));
for (WebElement option : allOptions) {
System.out.println(String.format("Value is: %s", option.getAttribute("value")));
option.click();
}
*/
/* Selecting from dropdown
Select select = new Select(driver.findElement(By.tagName("select")));
select.deselectAll();
select.selectByVisibleText("Edam");
*/
//Alert alert = driver.switchTo().alert();
//driver.navigate().forward();
//driver.navigate().back();
//driver.get("www.google.com");
//***************************************************************
// List of common Exception while working with WebElements
//*********************************************************************
//1."Element is not clickable at point (x, y).
//2.No Such Element - for Frame related issue
//3.The driver executable does not exist
//4.Driver executable must be set by the webdriver.ie.driver system property
//5.The path to the driver executable must be set by the webdriver.chrome.driver system property
}
catch(Exception e){
System.out.println("Exception - > " + e.toString());
}
finally{
driver.close();
driver.quit();
}
}
}
What do you think on this topic? Please express your opinion through comment below