$x method
The method evaluates the XPath expression relative to the elementHandle. If there are no such elements, the method will resolve to an empty array.
Implementation
Future<List<ElementHandle>> $x(String expression) async {
var arrayHandle = await evaluateHandle(
//language=js
'''
function _(element, expression) {
const document = element.ownerDocument || element;
const iterator = document.evaluate(expression, element, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE);
const array = [];
let item;
while ((item = iterator.iterateNext()))
array.push(item);
return array;
}
''', args: [expression]);
var properties = await arrayHandle.properties;
await arrayHandle.dispose();
var result = <ElementHandle>[];
for (var property in properties.values) {
var elementHandle = property.asElement;
if (elementHandle != null) result.add(elementHandle);
}
return result;
}