【问题标题】:Flutter Driver select date from date pickerFlutter Driver 从日期选择器中选择日期
【发布时间】:2020-02-05 11:50:24
【问题描述】:

我想通过日期选择器选择一个日期作为颤振驱动程序测试的一部分。但是,我似乎无法弄清楚我将如何做到这一点?

我尝试过使用find.textandfind.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();

}

屏幕截图:

【问题讨论】:

    标签: flutter flutter-test


    【解决方案1】:

    我运行了一个从 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());
      }
    

    下面是flutter驱动测试,首先识别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');
          });
    

    测试结果:

    在您提供的代码中,您可以在sn-p下面尝试,即点击24,然后直接点击OK,而不是告诉驱动程序等待OK按钮找到。

    await driver.tap(find.text('24'));
      await driver.tap(find.text('OK'));
    

    希望这可以帮助您解决问题。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多