How to set-up Automation in C# for Android Native app & MobileWeb app using Appium?
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
{
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.
