We will use ATU Test Recorder to record selenium test execution videos.
How to verify element present or visible in selenium 2 (Selenium WebDriver)
- To check Element Present:
if(driver.findElements(By.xpath("value")).size() != 0){ System.out.println("Element is Present"); }else{ System.out.println("Element is Absent"); }
Or
if(driver.findElement(By.xpath("value"))!= null){ System.out.println("Element is Present"); }else{ System.out.println("Element is Absent"); }
- To check Visible:
if( driver.findElement(By.cssSelector("a > font")).isDisplayed()){ System.out.println("Element is Visible"); }else{ System.out.println("Element is InVisible"); }
- To check Enable:
if( driver.findElement(By.cssSelector("a > font")).isEnabled()){ System.out.println("Element is Enable"); }else{ System.out.println("Element is Disabled"); }
- To check text present
if(driver.getPageSource().contains("Text to check")){ System.out.println("Text is present"); }else{ System.out.println("Text is absent"); }
How to create an appium android device “back button” in java
// click back button
HashMap swipeObject = new HashMap();
swipeObject.put("keycode", 82);
((JavascriptExecutor)driver).executeScript("mobile: keyevent", swipeObject);
// click back button
HashMap<String, Integer> keycode = new HashMap<String, Integer>();
keycode.put("keycode", 4);
((JavascriptExecutor)driver).executeScript("mobile: keyevent", keycode);
Testing mobile application on wordpess
package mypackage;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.net.URL;
import java.util.List;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class WordPress {
public AppiumDriver driver;;
@BeforeTest
public void startUp()throws Exception{
File app = new File(“E:\\org.wordpress.android.apk”);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(“deviceName”, “TA93400HO4”);
cap.setCapability(“app”, app.getAbsolutePath());
System.out.println(app.getAbsolutePath());
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), cap);
}
@Test(priority=1)
public void login()throws Exception{
List<WebElement> list = driver.findElements(By.className(“android.widget.EditText”));
list.get(0).clear();
list.get(0).sendKeys(“maheshcbe”);
list.get(1).clear();
list.get(1).sendKeys(“mkumar90”);
Thread.sleep(500);
driver.findElement(By.name(“Sign in”)).click();
/*
// Read data from excel sheet
FileInputStream fi = new FileInputStream(“E:\\wordpress.xls”);
Workbook wrkbook = Workbook.getWorkbook(fi);
Sheet wrksheet = wrkbook.getSheet(0);
String a[][] = new String[wrksheet.getRows()][wrksheet.getColumns()];
System.out.println(“Total Rows: ” + wrksheet.getRows());
System.out.println(“Total Columns: ” + wrksheet.getColumns());
// Write the input data into another excel file
FileOutputStream fo = new FileOutputStream(“E:\\wordpress.xls”);
WritableWorkbook wwb = Workbook.createWorkbook(fo);
WritableSheet ws = wwb.createSheet(“Sheet1”, 0);
for (int i = 0; i < wrksheet.getRows(); i++) {
for (int j = 0; j < wrksheet.getColumns(); j++) {
a[i][j] = wrksheet.getCell(j, i).getContents();
Label l = new Label(j, i, a[i][j]);
Label l1 = new Label(2, 0, “Result”);
ws.addCell(l);
ws.addCell(l1);
}
}
for(int rowCnt = 1; rowCnt < wrksheet.getRows(); rowCnt++) {
List<WebElement> list = driver.findElements(By.className(“android.widget.EditText”));
list.get(0).clear();
list.get(0).sendKeys(wrksheet.getCell(0, rowCnt).getContents());
list.get(1).clear();
list.get(1).sendKeys(wrksheet.getCell(1, rowCnt).getContents());
Thread.sleep(500);
driver.findElement(By.name(“Sign in”)).click();
Thread.sleep(1000);
if(rowCnt==1 || rowCnt==2 || rowCnt==3){
Label l3 = new Label(2, rowCnt, “Fail”);
ws.addCell(l3);
String Screenshotpath = “E:\\”;
String extance =”.jpg”;
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(Screenshotpath+”Image”+rowCnt+extance));
}
else {
Label l2 = new Label(2, rowCnt, “pass”);
ws.addCell(l2);
}
}
wwb.write();
wwb.close();
*/
}
@Test(priority=2)
public void listIteam()throws Exception{
Thread.sleep(15000);
List<WebElement> listEle = driver.findElements(By.className(“android.support.v7.app.ActionBar$Tab”));
System.out.println(listEle.size());
//WebElement element = listEle.get(2);
//element.click();
/*
swipeLeft();
Thread.sleep(1000);
swipeLeft();
Thread.sleep(1000);
swipeLeft();
*/
}
public void swipeLeft(){
Dimension size = driver.manage().window().getSize();
int startx = (int) (size.width * 0.8);
int endx = (int) (size.width * 0.20);
int starty = size.height / 2;
driver.swipe(startx, starty, endx, starty, 1000);
}
public void swipeRight(){
Dimension size = driver.manage().window().getSize();
int endx = (int) (size.width * 0.8);
int startx = (int) (size.width * 0.20);
int starty = size.height / 2;
driver.swipe(startx, starty, endx, starty, 1000);
}
}
automation mobile application using appium with genymaotion
package demoauto.com;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.io.FileInputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import jxl.Sheet;
import jxl.Workbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class StartApplication {
//private static AndroidDriver driver;
public static AppiumDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException,Exception{
/*
File classpathRoot = new File(System.getProperty(“user.dir”));
File appDir = new File(classpathRoot, “/Apps/Amazon/”);
File app = new File(appDir, “in.amazon.mShop.android.shopping.apk”);
*/
//File appDir = new File(“D:\\Apps”);
File app = new File(“E:\\org.wordpress.android.apk”);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, “”);
capabilities.setCapability(“deviceName”, “TA93400HO4”);
capabilities.setCapability(“platformVersion”, “5.0.2”);
capabilities.setCapability(“platformName”, “Android”);
capabilities.setCapability(“app”, app.getAbsolutePath());
capabilities.setCapability(“appPackage”, “org.wordpress.android”);
capabilities.setCapability(“appActivity”, “org.wordpress.android.ui.WPLaunchActivity”);
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
Thread.sleep(10000);
//driver.quit();
//driver.findElement(By.className(“android.widget.EditText”)).sendKeys(“maheshcbe”);
//driver.findElement(arg0)
//.findElement(By.className(“android.widget.EditText”)).sendKeys(“mkumar90”);
// Read data from excel sheet
FileInputStream fi = new FileInputStream(“E:\\Testdata.xls”);
Workbook wrkbook = Workbook.getWorkbook(fi);
Sheet wrksheet = wrkbook.getSheet(0);
String a[][] = new String[wrksheet.getRows()][wrksheet.getColumns()];
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
System.out.println(“Total Rows: ” + wrksheet.getRows());
System.out.println(“Total Columns: ” + wrksheet.getColumns());
for(int rowCnt = 1; rowCnt < wrksheet.getRows(); rowCnt++) {
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
List<WebElement> list = driver.findElements(By.className(“android.widget.EditText”));
list.get(0).clear();
list.get(0).sendKeys(wrksheet.getCell(0, rowCnt).getContents());
System.out.print(wrksheet.getCell(0, rowCnt).getContents());
list.get(1).clear();
list.get(1).sendKeys(wrksheet.getCell(1, rowCnt).getContents());
System.out.print(wrksheet.getCell(1, rowCnt).getContents());
}
//List<WebElement> list = driver.findElements(By.className(“android.widget.EditText”));
//System.out.print(list.size());
//list.get(0).sendKeys(“maheshcbe”);
//list.get(1).sendKeys(“mkumar90”);
//System.out.print(“befor click”);
//driver.findElement(By.className(“android.widget.TextView”)).click();
//System.out.print(“after click”);
}
}
Android auromation
create android avd
1.android create avd -n webapp -t 17
2.android.bat list targets
3.emulator -avd webapp &
install webdriver in to avd
1.adb devices
2.adb install android-server-2.21.0.apk
3.adb forward tcp:8080 tcp:8080
List out without subelement in li tag
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.findElement(By.xpath(“//*[@id=’Options’]/span/a/i”)).click();
WebElement leftmenu = driver.findElement(By.xpath(“//*[@id=’left-menu-view’]/nav/ul/div[1]”));
List<WebElement> listele = leftmenu.findElements(By.tagName(“li”));
System.out.println(listele.size());
String[] linktest = new String[listele.size()];
int i =0;
/*
for(WebElement ele : listele){
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
System.out.println(+i+””+ele.getText());
i++;
}
*/
for(WebElement e : listele){
Thread.sleep(1000);
linktest[i] = e.getText();
System.out.println(+i+””+e.getText());
i++;
}
ArrayList<String> stringList = new ArrayList<String>();
for(String t : linktest){
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
if(!t.isEmpty()){
System.out.println(t);
stringList.add(t);
}
}
System.out.println(stringList.size());
Cross Browser Testing using Selenium Webdriver
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class TestCase1 {
@Test
// Here this parameters we will take from testng.xml
@Parameters(“Browser”)
public void test1(String browser) {
if(browser.equalsIgnoreCase(“FF”)){
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get(“http://www.facebook.com”);
driver.quit();
}
else if(browser.equalsIgnoreCase(“IE”)){
System.setProperty(“webdriver.ie.driver”, “./server/IEDriverServer.exe”);
WebDriver driver=new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get(“http://www.facebook.com”);
driver.quit();
}
}
}
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”>
Here parallel is an attribute which specify the mode of execution and thread-count specify how many browser should open
<suite name=”Suite” parallel=”tests” thread-count=”2″>
<test name=”Test”>
<parameter name=”Browser” value=”FF” />
<classes>
<class name=”SampleTestcases.TestCase1″/>
</classes>
</test>
<test name=”Test1″>
<parameter name=”Browser” value=”IE” />
<classes>
<class name=”SampleTestcases.TestCase1″/>
</classes>
</test>
</suite>
Data Driven Framework in Selenium Webdriver
package DataDrivenTesting;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import jxl.Sheet;
import jxl.Workbook;
public class TestDDT1 {
WebDriver driver;
Workbook wb;
Sheet sh1;
int numrow;
String username;
String password;
@BeforeTest
public void Setup(){
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get(“https://wordpress.com/wp-login.php?redirect_to=https%3A%2F%2Fwordpress.com%2F”);
}
@Test(dataProvider=”testdata”)
public void TestFireFox(String uname,String password){
//clear username field
driver.findElement(By.id(“user_login”)).clear();
//Enter username
driver.findElement(By.id(“user_login”)).sendKeys(uname);
//clear password field
driver.findElement(By.id(“user_pass”)).clear();
//Enter the password
driver.findElement(By.id(“user_pass”)).sendKeys(password);
}
@DataProvider(name=”testdata”)
public Object[][] TestDataFeed(){
try {
// load workbook
wb=Workbook.getWorkbook(new File(“C:\\automation\\Demo\\src\\main\\java\\DataDrivenTesting\\TestData.et”));
// load sheet in my case I am referring to first sheet only
sh1= wb.getSheet(0);
// get number of rows so that we can run loop based on this
numrow= sh1.getRows();
}
catch (Exception e)
{
e.printStackTrace();
}
// Create 2 D array and pass row and columns
Object [][] facebookdata=new Object[numrow][sh1.getColumns()];
// This will run a loop and each iteration it will fetch new row
for(int i=0;i<numrow;i++){
// Fetch first row username
facebookdata[i][0]=sh1.getCell(0,i).getContents();
// Fetch first row password
facebookdata[i][1]=sh1.getCell(1,i).getContents();
}
// Return 2d array object so that test script can use the same
return facebookdata;
}
@AfterTest
public void QuitTC(){
// close browser after execution
driver.quit();
}
}
File upload using Robots
// Create object of Robot class
Robot robot = new Robot();
Thread.sleep(1000);
// Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
// Release Enter
robot.keyRelease(KeyEvent.VK_ENTER);
// Press CTRL+V
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
// Release CTRL+V
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
Thread.sleep(1000);
//Press Enter
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);