$eval<T> method

Future<T?> $eval<T>(
  1. String selector,
  2. @Language.new('js') String pageFunction, {
  3. List? args,
})

This method runs document.querySelector within the frame and passes it as the first argument to pageFunction. If there's no element matching selector, the method throws an error.

If pageFunction returns a Promise, then frame.$eval would wait for the promise to resolve and return its value.

Examples:

var searchValue = await frame.$eval(
  '#search',
  'function (el) { return el.value; }',
);
var preloadHref = await frame.$eval(
  'link[rel=preload]',
  'function (el) { return el.href; }',
);
var html = await frame.$eval(
  '.main-container',
  'function (e) { return e.outerHTML; }',
);

selector: A selector to query frame for pageFunction: Function to be evaluated in browser context args: Arguments to pass to pageFunction Returns a Future which resolves to the return value of pageFunction

Implementation

Future<T?> $eval<T>(
  String selector,
  @Language('js') String pageFunction, {
  List<dynamic>? args,
}) {
  return _mainWorld.$eval<T>(selector, pageFunction, args: args);
}