Прокрутка выбора даты с помощью мобильного телефона: выберите AppPererWheelValue в Appium

Я работаю с Appium, и я пытаюсь выбрать дату из выбора даты для iOS.

Вот мой код

JavascriptExecutor js = (JavascriptExecutor) driver;
    Map<String, Object> params = new HashMap();
    params.put("order", "next");
    params.put("offset", 0.15);
    params.put("element", dayPicker);
    for (int i=0;i<10;i++) {
        js.executeScript("mobile: selectPickerWheelValue", params);
    }

Я хочу выбрать день 10, месяц и год. Ниже приведен снимок пользовательского интерфейса.

введите описание изображения здесь

Но я получаю следующее сообщение об ошибке, когда пытаюсь использовать приведенный выше код.

org.openqa.selenium.WebDriverException: An unknown server-side error 
occurred while processing the command. Original error: Error 
Domain=com.facebook.WebDriverAgent Code=1 "Picker wheel value has not 
been changed after 2 seconds timeout" UserInfo= . 
{NSLocalizedDescription=Picker wheel value has not been changed after 2 
seconds timeout}
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'

Я также попробовал scroll. Но, к сожалению, прокрутка происходит 2 раза и останавливается. Вот код

JavascriptExecutor js = (JavascriptExecutor) driver;
    Map<String, Object> params = new HashMap();
    params.put("element", dayPicker);
    params.put("direction", "down");
    params.put("text", "10");
    params.put("toVisible", "true");
    js.executeScript("mobile: scroll" , params);
    System.out.println("******"+dayPicker.getText());

Я также хочу выбрать страну из списка стран в другой части приложения. так что было бы полезно, если вы можете помочь мне в том, как использовать эти методы, как прокрутка, проведите

Я использую последнюю версию appium desktop 1.6 и appium server 1.8.

2 ответа

Нашел альтернативное решение

((IOSDriver) driver).findElementByClassName("XCUIElementTypePickerWheel")
                        .sendKeys(text);

Найдите xpath для другого средства выбора (Дата, Месяц, Год) и установите соответствующее значение (попробуйте set_value('1') или же set_value('= 1'))

date_picker = driver.find_element_by_xpath('//XCUIElementTypePickerWheel')
date_picker.set_value('1')
JavascriptExecutor js = (JavascriptExecutor) driver;
    Map<String, Object> params = new HashMap();
    params.put("order", "next");
    params.put("offset", 0.15);
    params.put("element",((RemoteWebElement) driver.findElement(dayPicker)).getId());
    for (int i=0;i<10;i++) {
        js.executeScript("mobile: selectPickerWheelValue", params);
    }
Другие вопросы по тегам