【发布时间】:2020-07-29 06:11:26
【问题描述】:
如何使用 Appium 自动化已安装的 ios 应用程序。我想使用 appium 在我的 iphone 中像 whatsap ebay 和其他已安装的应用程序一样自动化。
【问题讨论】:
标签: mobile automated-tests appium ui-automation appium-ios
如何使用 Appium 自动化已安装的 ios 应用程序。我想使用 appium 在我的 iphone 中像 whatsap ebay 和其他已安装的应用程序一样自动化。
【问题讨论】:
标签: mobile automated-tests appium ui-automation appium-ios
如果您知道应用程序的 bundleId,您应该能够自动化应用程序。对于 WhatsApp,bundleId 是 net.whatsapp.WhatsApp
如果您的 Appium 设置正确并安装了 python,则启动 Appium 服务器并运行示例 python 代码。您可以将会话附加到 Appium 检查器以检查元素。
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '12.4.6'
desired_caps['name'] = 'Sample Test'
desired_caps['deviceName'] = 'iPhone 6'
desired_caps['udid'] = 'add_your_device_udid_here'
desired_caps["bundleId"] = "net.whatsapp.WhatsApp"
desired_caps["noReset"] = True
desired_caps["newCommandTimeout"] = 50000
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
【讨论】:
您需要在现有功能中添加捆绑 ID 功能。
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(MobileCapabilityType.UDID, "udid");
caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "12.4");
caps.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName);
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
caps.setCapability("unicodeKeyboard", true);
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
caps.setCapability(MobileCapabilityType.NO_RESET, true);
caps.setCapability("bundleId", "com.company.appname");
caps.setCapability("usePrebuiltWDA", true);
IOSDriver<WebElement> driver = new IOSDriver<WebElement>(new URL("http://127.0.0.1:4444/wd/hub"), caps)
我添加了用于真实设备的 UDID 功能。
【讨论】:
这对我有用
{
"automationName": "XCUITest",
"platformName": "iOS",
"deviceName": "iPhone",
"udid": "...",
"xcodeOrgId": "...",
"platformVersion": "xx.y",
"updatedWDABundleId": "com.facebook.WebDriverAgentRunner"
}
【讨论】: