Прокрутка выбора даты с помощью мобильного телефона: выберите 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);
}