priya
priya

Reputation: 858

How to set desired capabilities for launching ios app on real device with appium ( c#)

Hi I am automating the native ios application on ios . I already automated android native app but for launching the appium server on mac from c# code running on windows I need to know how to setup the Desired capabilities for ios platform.

Upvotes: 1

Views: 1999

Answers (2)

Meer
Meer

Reputation: 798

To run Appium test on iOS simulator/real device, Mac hardware is needed and to run test on real device, team id from apple developer account is also needed. More details here.

Connect the iPhone to MacOS via cable or connect both iPhone and Mac computer to same wireless network (WiFi).

C# code for initialising appium iOS driver to run test on real device:

//Initialise driver options
AppiumOptions capabilities = new AppiumOptions();

//Declare capabilities
capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformName, "iOS");
capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "13.2"); //put real device iOS version
capabilities.AddAdditionalCapability(MobileCapabilityType.DeviceName, "iPhone X"; //put real device name
capabilities.AddAdditionalCapability(MobileCapabilityType.AutomationName, "XCUITest");

if (appInstalled)
{
    //if app is installed and don't want to re-install, use below capability
    capabilities.AddAdditionalCapability(IOSMobileCapabilityType.BundleId, "<app-bundle-id>");
}

else
{
    //(re)installs app
    capabilities.AddAdditionalCapability(IOSMobileCapabilityType.AppName, "<name-of-test-app>");
    capabilities.AddAdditionalCapability(MobileCapabilityType.App, "<absolute-path-to-test-app.app>");
}

capabilities.AddAdditionalCapability(MobileCapabilityType.Udid, "<real-device-Udid>");
capabilities.AddAdditionalCapability("xcodeOrgId", "<team-id>");
capabilities.AddAdditionalCapability("xcodeSigningId","iPhone Developer");

//Initialise iOS driver
var driver = new IOSDriver<IMobileElement<AppiumWebElement>>(capabilities);

Upvotes: 0

Rohith
Rohith

Reputation: 153

Please find the below peace of code for c# language:

 DesiredCapabilities capabilities = new DesiredCapabilities();
 TestCapabilities testCapabilities = new TestCapabilities();

  testCapabilities.App = "";
  testCapabilities.AutoWebView = true;
  testCapabilities.AutomationName = "";
  testCapabilities.BrowserName = String.Empty; // Leave empty otherwise you test on browsers
  testCapabilities.DeviceName = "Needed if testing on IOS on a specific device. This will be the UDID";
  testCapabilities.Platform = TestCapabilities.DevicePlatform.IOS; // Or Android
  testCapabilities.PlatformVersion = String.Empty; // Not really needed

  testCapabilities.AssignAppiumCapabilities(ref capabilities);
  driver = new AppiumDriver(testServerAddress, capabilities, INIT_TIMEOUT_SEC);
  driver.Manage().Timeouts().ImplicitlyWait(IMPLICIT_TIMEOUT_SEC);

Upvotes: 2

Related Questions