clickAndWaitForNavigation method

Future<Response?> clickAndWaitForNavigation(
  1. String selector, {
  2. Duration? timeout,
  3. Until? wait,
})

Convenience function to wait for navigation to complete after clicking on an element.

See this issue for more context: https://github.com/GoogleChrome/puppeteer/issues/1421

Note: Be wary of ajax powered pages where the navigation event is not triggered.

await page.clickAndWaitForNavigation('input#submitData');

as opposed to:

await Future.wait([
  page.waitForNavigation(),
  page.click('input#submitData'),
]);

Implementation

Future<Response?> clickAndWaitForNavigation(String selector,
    {Duration? timeout, Until? wait}) async {
  var navigationFuture = waitForNavigation(timeout: timeout, wait: wait);
  await click(selector);
  return await navigationFuture;
}