【发布时间】:2016-01-26 04:40:36
【问题描述】:
您好,我正在自动化 ios 上的本机 ios 应用程序。我已经自动化了 android 本机应用程序,但是为了从在 windows 上运行的 c# 代码在 mac 上启动 appium 服务器,我需要知道如何为 ios 平台设置所需的功能。
【问题讨论】:
您好,我正在自动化 ios 上的本机 ios 应用程序。我已经自动化了 android 本机应用程序,但是为了从在 windows 上运行的 c# 代码在 mac 上启动 appium 服务器,我需要知道如何为 ios 平台设置所需的功能。
【问题讨论】:
请找到以下c#语言的和平代码:
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);
【讨论】:
要在 iOS 模拟器/真实设备上运行 Appium 测试,需要 Mac 硬件,而要在真实设备上运行测试,还需要来自苹果开发者帐户的团队 ID。更多详情here.
通过电缆将 iPhone 连接到 MacOS,或将 iPhone 和 Mac 计算机连接到同一个无线网络 (WiFi)。
初始化appium iOS驱动以在真机上运行测试的C#代码:
//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);
【讨论】: