Wednesday, December 24, 2014

Flipkart (Native App) Automation Script - Using Selendroid For Android

Script I :

package Flipkart_Complete_Partap;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import io.selendroid.device.DeviceTargetPlatform;

import org.openqa.selenium.WebDriver;

@Test
public class Test_Case
{
String username;
String password;
String SearchProduct;
String objCommon;
Common_Methods _objCommon = new Common_Methods();
private static SelendroidLauncher selendroidServer = null;
private static WebDriver _driver = null;

@BeforeClass
public void setUp() throws FileNotFoundException, IOException
{
Properties prop = new Properties();
prop.load(new FileInputStream("PropFile_Flipkart_Ankit.prop"));
username = prop.getProperty("UserName");
System.out.println(username);
password = prop.getProperty("Password");
System.out.println(password);
}

@Test
public void test() throws InterruptedException
{
_objCommon.login(_driver, username, password);
_objCommon.captureScreenshot(_driver);
_driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
_objCommon.Search_Product(_driver);
_objCommon.captureScreenshot(_driver);
_objCommon.addtocart(_driver);
_objCommon.captureScreenshot(_driver);
_objCommon.add_address(_driver);
_objCommon.captureScreenshot(_driver);
}

@BeforeClass
public static void startSelendroidServer() throws Exception
{
if (selendroidServer != null)
{
selendroidServer.stopSelendroid();
}
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("com.flipkart.android:2.5.2");
selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new SelendroidCapabilities("com.flipkart.android:2.5.2");
/*caps.setPlatformVersion(DeviceTargetPlatform.ANDROID17);
caps.setSerial("QO4417C05204")*/;
_driver = new SelendroidDriver(caps);
}

@AfterClass
public static void stopSelendroidServer() throws InterruptedException
{
if (_driver != null)
{
Thread.sleep(30000);
_driver.quit();
}
if (selendroidServer != null)
{
selendroidServer.stopSelendroid();
}
  }
}

---------------------------------------------------------------------------------------------------------------------

Library Class
-----------------------------------------------------------------------------------------------------------------------

package Flipkart_Complete_Partap;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import io.selendroid.device.DeviceTargetPlatform;

import org.openqa.selenium.WebDriver;

@Test
public class Test_Case 
{
String username;
String password;
String SearchProduct;
String objCommon;
Common_Methods _objCommon = new Common_Methods();
private static SelendroidLauncher selendroidServer = null;
private static WebDriver _driver = null;

@BeforeClass
public void setUp() throws FileNotFoundException, IOException 
{
Properties prop = new Properties();
prop.load(new FileInputStream("PropFile_Flipkart_Ankit.prop"));
username = prop.getProperty("UserName");
System.out.println(username);
password = prop.getProperty("Password");
System.out.println(password);
}

@Test
public void test() throws InterruptedException 
{
_objCommon.login(_driver, username, password);
_objCommon.captureScreenshot(_driver);
_driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
_objCommon.Search_Product(_driver);
_objCommon.captureScreenshot(_driver);
_objCommon.addtocart(_driver);
_objCommon.captureScreenshot(_driver);
_objCommon.add_address(_driver);
_objCommon.captureScreenshot(_driver);
}

@BeforeClass
public static void startSelendroidServer() throws Exception 
{
if (selendroidServer != null) 
{
selendroidServer.stopSelendroid();
}
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("com.flipkart.android:2.5.2");
selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new SelendroidCapabilities("com.flipkart.android:2.5.2");
/*caps.setPlatformVersion(DeviceTargetPlatform.ANDROID17);
caps.setSerial("QO4417C05204")*/;
_driver = new SelendroidDriver(caps);
}

@AfterClass
public static void stopSelendroidServer() throws InterruptedException 
{
if (_driver != null) 
{
Thread.sleep(30000);
_driver.quit();
}
if (selendroidServer != null)
{
selendroidServer.stopSelendroid();
}
  }
}

3 comments:

  1. Thanks for giving important information to training seekers,Keep posting useful information,Click below to find.

    Mobile Application Development and Testing Training

    ReplyDelete
  2. Hello
    The Article on Native App Automation Script,Using Selendroid For Android is nice ,give detail information about it .Thanks for sharing the information about it.
    Xamarin Consulting

    ReplyDelete
  3. Nice post.Thanks for sharing
    Indian Cyber Army’s most awaited internship is live now. Summer Internship 2018 on “ Ethical hacking” and book your seats before it runs out.Candidates have to get themselves registered to be a part of this Internship program. Here internship will give you on-the-job experience, help you learn whether you and Cyber security industry are a good match and can provide you with valuable connections and references. Here interns are usually exposed to a wide variety of tasks and responsibilities which allows the intern to showcase their strengths by working on projects for various managers that work on different parts of Indian Cyber Army. Becoming a high performing intern is a fantastic way to improve your employment prospects. This internship can be a great way to get your foot in the door of success with a prestigious or desirable Organization.As career in ethical hacking is most in demand.

    ReplyDelete