$eval<T> method

Future<T?> $eval<T>(
  1. String selector,
  2. @Language('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);
}