gpt4 book ai didi

android - 如何在一个脚本上为两种操作系统(Android 和 IOS)创建驱动程序

转载 作者:行者123 更新时间:2023-11-28 23:29:22 25 4
gpt4 key购买 nike

第一次我需要设置 React-native 应用程序自动化。该应用程序为两个操作系统(Android 和 IOS)开发。

问题是如何获取设备当前运行的操作系统,并设置相关的驱动程序。

例如:我连接一台IOS操作系统的设备,点击“Run All Tests”按钮,相关的驱动程序就开始运行了。

我设置了两个 AppiumDriver 类型的驱动程序,一个返回 Android 操作系统驱动程序,另一个返回 IOS。

AppiumDriver 驱动; URL appiumUrl = new URL("http://0.0.0.0:4723/wd/hub ");

public DriverSettings() throws MalformedURLException {
}


public AppiumDriver getAndroidDriver() {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "**TBD**");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "**TBD**");
cap.setCapability(MobileCapabilityType.APP, appUrl);
cap.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
cap.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true); //set unicodekeyboard in order to support umlauts
cap.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true); //reset keyboard after tests
cap.setCapability(AndroidMobileCapabilityType.IGNORE_UNIMPORTANT_VIEWS, true); //speeds up tests, as views that are not important i.e. for accessiblity are not shown on android. Is disabled on demand in tests using driver.ignoreunimporantViews
return driver = new AndroidDriver(appiumUrl, cap);
}

public AppiumDriver getIOSDriver() {

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.3");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 6");
cap.setCapability(MobileCapabilityType.APP, appUrl);

return driver = new IOSDriver(appiumUrl, cap);
}

那么在我运行所有测试之前如何检查它们呢?

最佳答案

您可以创建一个通用的驱动程序方法,该方法将根据平台(iOS 或 android)返回所需的驱动程序。

你可以这样做:

private static AppiumDriver<MobileElement> driver;

public AppiumDriver<MobileElement> getDriver(String platformName) {
if (platformName.equals("Android")) {
// setup the android driver
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "**TBD**");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "**TBD**");
cap.setCapability(MobileCapabilityType.APP, appUrl);
cap.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
cap.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true); //set unicodekeyboard in order to support umlauts
cap.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true); //reset keyboard after tests
cap.setCapability(AndroidMobileCapabilityType.IGNORE_UNIMPORTANT_VIEWS, true); //speeds up tests, as views that are not important i.e. for accessiblity are not shown on android. Is disabled on demand in tests using driver.ignoreunimporantViews
driver = new AndroidDriver(appiumUrl, cap);
} else if (platformName.equals("iOS")) {
// setup the ios driver
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.3");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 6");
cap.setCapability(MobileCapabilityType.APP, appUrl);
driver = new IOSDriver(appiumUrl, cap);
}
return driver;
}

关于android - 如何在一个脚本上为两种操作系统(Android 和 IOS)创建驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57346586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com