tap method

Future<void> tap(
  1. Finder finder, {
  2. SettlePolicy? settlePolicy,
  3. Duration? visibleTimeout,
  4. Duration? settleTimeout,
})

Waits until this finder finds at least 1 visible widget and then taps on it.

Example:

// taps on the first widget having Key('createAccount')
await $(#createAccount).tap();

If the finder finds more than 1 widget, you can choose which one to tap on:

// taps on the third TextButton widget
await $(TextButton).at(2).tap();

This method automatically calls WidgetTester.pumpAndSettle after tapping. If you want to disable this behavior, set settlePolicy to SettlePolicy.noSettle.

See also:

Implementation

Future<void> tap(
  Finder finder, {
  SettlePolicy? settlePolicy,
  Duration? visibleTimeout,
  Duration? settleTimeout,
}) {
  return TestAsyncUtils.guard(() async {
    final resolvedFinder = await waitUntilVisible(
      finder,
      timeout: visibleTimeout,
    );
    await tester.tap(resolvedFinder.first);
    await _performPump(
      settlePolicy: settlePolicy,
      settleTimeout: settleTimeout,
    );
  });
}