Page Object Model for selenium webdriver

Like QTP, TestComplete and few other automation tools selenium webdriver does not provide any centralized repository where we can put object locator of page element. In POM object pattern we can accomplish this type approach.

What is POM:
In automated web testing, a Page Object is a class or object that represents a web page in your application. A Page Object hides the technical details about how you interact with a web page behind a more readable and business-focused facade. Following are the few points in details:
Page Object Model is a design pattern to create Object Repository for web UI elements. Like it provide you to option to put all locators in corresponding page (java file ) like for home page you  create a homepage java file and put all element locators of home page in same class.
Under this model, you should create java file like above ( homePage.java ) home page and create functions related to this page  like clickHomeMenu, clickProduct() verfiyHomePage() etc.
So your page object class contains elements locator and corresponding function what you need to perform on that particular page.
Name of these function and object locator must be logically defined like elements name username , password, loginButoon and corresponding function should be like enterUserName(), enterPassword(), clickLoginButton()

Road to capture android log using java code

In this post I will show you how to capture android log using java code.
public static void captureAndroidDevicesLog() {
  try {
   Process process = Runtime.getRuntime().exec("adb logcat");

   BufferedReader reader = new BufferedReader(new InputStreamReader(
         process.getInputStream()));
   String s;
   System.out.println("*********************************************");
   System.out.println("Printing android logs");
   System.out.println("*********************************************");
   while ((s = reader.readLine()) != null) {
    System.out.println(s);
   }
   System.out.println("*********************************************");
   System.out.println("End printing android logs");
   System.out.println("*********************************************");
  } catch (IOException e) {
   e.printStackTrace();
  } 
}

Above code capture all log of android device and print in console. Yo can manupulate as per you need.

Road to capture all connected devices using java code at run time

In this post you will learn how to capture connected devices udid at run time using java code.

public static List<String> getAttachedDevicesList(){
 
  List<String> devicesID = new ArrayList<String>();
  try {
         Process process = Runtime.getRuntime().exec("adb devices");       
         BufferedReader reader=new BufferedReader( new InputStreamReader(process.getInputStream()));
         String s;                
         while ((s = reader.readLine()) != null){         
          if(s.contains("device") && ! s.contains("attached")){
           String[] device = s.split("\t");
           devicesID.add(device[0]);
          }
         }  
        
     } catch (IOException e) {
         e.printStackTrace();
     }
     return devicesID;
 }


public static void main(String[] str) {
  List<String> devicesID = getAttachedDevicesList();
  for (String dvc : devicesID) {
   System.out.println(dvc);
  }
 }

When you run this you will get  all connected devices  udid.