Flutter Driver select 来自日期选择器的日期
Flutter Driver select date from date picker
我想 select 日期选择器作为 flutter 驱动程序测试的一部分。但是,我似乎无法弄清楚我将如何做到这一点?
我尝试过使用 find.text
和 find.bySemanticsLabel
,并且尝试过,但到目前为止没有成功。
我的代码:
Future<void> executeStep() async {
await FlutterDriverUtils.waitForFlutter(world.driver);
NewOrderForm newOrderForm = NewOrderForm(world.driver);
await newOrderForm.setFieldKontrak();
//Open Date Picker
await newOrderForm.setDateKontrak();
//Select date 24
await driver.waitFor(find.bySemanticsLabel('24'));
await driver.tap(find.text('24'),timeout: Duration(seconds: 15));
await driver.waitFor(find.text('OK'));
await driver.tap(find.text('OK'));
await newOrderForm.setProyekField();
}
屏幕截图:
我 运行 从日期选择器中选择日期的示例测试,效果很好。以下是我所做的:
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());
}
下面是 flutter driver 测试,首先识别 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'));
希望这能帮助您解决问题。
我想 select 日期选择器作为 flutter 驱动程序测试的一部分。但是,我似乎无法弄清楚我将如何做到这一点?
我尝试过使用 find.text
和 find.bySemanticsLabel
,并且尝试过,但到目前为止没有成功。
我的代码:
Future<void> executeStep() async {
await FlutterDriverUtils.waitForFlutter(world.driver);
NewOrderForm newOrderForm = NewOrderForm(world.driver);
await newOrderForm.setFieldKontrak();
//Open Date Picker
await newOrderForm.setDateKontrak();
//Select date 24
await driver.waitFor(find.bySemanticsLabel('24'));
await driver.tap(find.text('24'),timeout: Duration(seconds: 15));
await driver.waitFor(find.text('OK'));
await driver.tap(find.text('OK'));
await newOrderForm.setProyekField();
}
屏幕截图:
我 运行 从日期选择器中选择日期的示例测试,效果很好。以下是我所做的:
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());
}
下面是 flutter driver 测试,首先识别 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'));
希望这能帮助您解决问题。