在相同的代码中与 IOS 和 android 一起工作

Posted

技术标签:

【中文标题】在相同的代码中与 IOS 和 android 一起工作【英文标题】:work with IOS and android together in same code 【发布时间】:2021-09-21 14:10:04 【问题描述】:

我正在寻找一种方法来使用适用于 androidios 真实设备的一个驱动程序,例如,现在如果我以 IOS = IOSDriver<MobileElement> driver; 开头并解锁我的设备,例如我的代码是 driver = new IOSDriver<>(url, dc); 和 @ android 的 987654323@ 相同,但如果我的驱动程序是 AppiumDriver driver;,代码将无法在 driver.unlockDevice(); 上运行,那么在一个驱动程序中同时使用 android 和 ios 的选项有哪些?

【问题讨论】:

【参考方案1】:

这是 POC - 处理得不是很好。只是为了快速浏览。 而且...我不确定 iOS 驱动程序 - 如果它甚至可以处理设备解锁 - 可能只在模拟器上...

public static AppiumDriver<MobileElement> driver;
public static DesiredCapabilities iosCaps;
public static DesiredCapabilities androidCaps;

public void caps() 
    iosCaps = new DesiredCapabilities();
    iosCaps.setCapability("deviceName", "iPhone 5");

    androidCaps = new DesiredCapabilities();
    androidCaps.setCapability("deviceName", "Samsung X");



protected void startDriver() throws MalformedURLException 
    caps();
    if (device == android) 
        driver = new AndroidDriver<>(new URL("appium url"), androidCaps);
     else if (device == ios) 
        driver = new IOSDriver<>(new URL("appium url"), iosCaps);
    


public void iosLock() 
    ((IOSDriver) driver).lockDevice();
    ((IOSDriver<MobileElement>) driver).lockDevice();


public void androidLock() 
    ((AndroidDriver) driver).lockDevice();

【讨论】:

以上是关于在相同的代码中与 IOS 和 android 一起工作的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中与 InAppBrowser 插件一起使用时如何更改状态栏颜色?

Xcode 7.3 如何将我现有的 iPhone 应用程序转换为通用应用程序,以便在 iOS 中与 iPad 一起使用

WebdriverIO - 在 Android 和 iOS 上并行运行相同的代码

CMFCLinkCtrl 在 VC++ 中与 dll 一起使用时会引发运行时错误

在android中与相机捕获的图像叠加图像

在 OpenCV 中与屏幕捕获一起使用的函数 matchTemplate