Я провел пробный тест, который выбирает дату из DatePicker, и он работал хорошо. Ниже я сделал следующее:
main.dart имеет простой RaisedButton
, при нажатии которого открывается DatePicker
:
return Scaffold(
body: Center(
child: RaisedButton(
onPressed: () {
_showDatePicker();
},
child: Text('Click')
)
)
);
void _showDatePicker() async {
DateTime picked = await showDatePicker(
context: context,
initialDate: new DateTime.now(),
firstDate: new DateTime(2019),
lastDate: new DateTime(2021)
);
if(picked != null) setState(() => _value = picked.toString());
}
Ниже приведен тест драйвера флаттера, который сначала идентифицирует RaisedButton
-> нажмите на нее -> находит дату, которую нужно выбрать -> нажмите на нее -> нажмите OK
test('datepicker test', () async {
final dateButton = find.text('Click');
await driver.waitFor(dateButton);
await driver.tap(dateButton);
await driver.tap(find.text('15'));
await driver.tap(find.text('OK'));
print('October 15 selected and tapped OK');
});
Результат теста:
В коде, который вы указали, вы можете попробовать ниже фрагмент, то есть, нажмите на 24
и непосредственно нажмите на OK
вместо того, чтобы сказать водителю ждать, пока кнопка OK
не найдет.
await driver.tap(find.text('24'));
await driver.tap(find.text('OK'));
Надеюсь, это поможет вам решить проблему.