работайте с IOS и Android вместе в одном коде

#java #android #ios #selenium #appium

Вопрос:

Я ищу способ работать с одним водителем, для Android и iOS устройств, например, теперь, если я начну с iOS = IOSDriver<MobileElement> driver; и разблокировать мое устройство например, чем мой код driver = new IOSDriver<>(url, dc); и driver.unlockDevice(); для Android одинаково, но если водитель будет 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();
}