Xamarin формирует изменяющееся значение выбора времени для теста пользовательского интерфейса

В Xamarin формы для выбора времени ниже

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

Как изменить значение выбора времени для теста пользовательского интерфейса xamarin. Я могу открыть окно выбора времени, но не знаю, как изменить время. Это снимок экрана дерева app.Repl() для средства выбора времени.

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

Это моя попытка изменить часы.

app.WaitForElement(c => c.Marked("hours"));
app.Tap(c => c.Marked("hours"));
app.EnterText(c => c.Marked("hours"), newHours) // errors can't pull up keyboard

1 ответ

Решение

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

// invokes a method to input the hour into the picker, time format is 24 hour
app.Query(c => c.Class("RadialTimePickerView").Invoke("setCurrentHour", (int)hour));

// invokes a method to input the minute into the picker
app.Query(c => c.Class("RadialTimePickerView").Invoke("setCurrentMinute", (int)minute));

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

// invokes a method to input the date into the picker, where month starts from 0
app.Query(c => c.Raw("DatePicker").Invoke("updateDate", (int)year, (int)month - 1, (int)day));

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

Другие вопросы по тегам