How to verify element present or visible in selenium 2 (Selenium WebDriver)

  1. 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");
    }
  2. To check Visible:
    if( driver.findElement(By.cssSelector("a > font")).isDisplayed()){
    System.out.println("Element is Visible");
    }else{
    System.out.println("Element is InVisible");
    }
  3. To check Enable:
    if( driver.findElement(By.cssSelector("a > font")).isEnabled()){
    System.out.println("Element is Enable");
    }else{
    System.out.println("Element is Disabled");
    }
  4. 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&#8221;), 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&#8221;), 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&#8221;);

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&#8221;);

driver.quit();
}
}

}

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”&gt;
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&#8221;);

}
@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);