How to set-up Automation in C# for Android Native app & MobileWeb app using Appium?

How to set-up Automation in C# for Android Native app & MobileWeb app using Appium?


Pre-requisites:

public static IWebDriver driver;
DesiredCapabilities capabilities;
System.Diagnostics.Process process;
System.Diagnostics.ProcessStartInfo startInfo;
AppiumLocalService service;
 public static AppiumDriver<AndroidElement> appdriver;

public void setAppiumObject()
        {
            capabilities = new DesiredCapabilities();
            process = new System.Diagnostics.Process();
            startInfo = new System.Diagnostics.ProcessStartInfo();
            service = AppiumLocalService.BuildDefaultService();
        }

For Native Apps in Android

public void NativeAndroidDriverInitialize()
        {
            setAppiumObject();

//Starts Appium Server process programatically
            string strCmdText;
            strCmdText = "/C appium -a 10.2.162.77 -p 4725";
            System.Diagnostics.Process.Start("CMD.exe", strCmdText);

            capabilities.SetCapability("app", "");
            capabilities.SetCapability("newCommandTimeout", 3600);   

//Connects to an already open Android Emulator 
            capabilities.SetCapability("platformName", "Android");
            capabilities.SetCapability("platformVersion", "8.1");
            capabilities.SetCapability("deviceName", "emulator-5554");
            capabilities.SetCapability("browserName", "");

//Provided the native appPackage & appActivity
            capabilities.SetCapability("appPackage", "com.package.appName");
            capabilities.SetCapability("appActivity", "com.package.appName.MainActivity");       

            AppiumDriver<AndroidElement> appdriver = new AndroidDriver<AndroidElement>(new Uri("http://10.2.162.77:4725/wd/hub"), capabilities);         
            driver = appdriver;
        }


For Chrome Browser installed in Android


 public void AndroidWebDriverInitialize()
        {
            setAppiumObject();

//Starts Appium Server process programatically
            service.Start();

//Connects to an already open Android Emulator 
            capabilities.SetCapability(MobileCapabilityType.PlatformName, "Android");
            capabilities.SetCapability(MobileCapabilityType.DeviceName, "emulator-5554");

//Connects to Chrome Browser in the Android Emulator
            capabilities.SetCapability(MobileCapabilityType.BrowserName, "Chrome");

//Sets the driver path of ChromeDriver.exe in the project path
            string DirParent = System
                      .IO
                      .Directory
                      .GetParent(System.IO.Directory.GetCurrentDirectory())
                      .Parent.FullName;
            string chromePath = DirParent + "//chromedriver.exe";
            capabilities.SetCapability("chromedriverExecutable", chromePath);

            appdriver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);
        }






About the author of this post:


I am a Software Test Engineer, who is quite passionate about testing, automating and finding bugs. I am from Bangalore, India. 

Feel free to reach me out on suggestions and improvements at My Linkedin Profile

Copyright © 2017 qatoolsguide.blogspot.com || ALL RIGHTS RESERVED