def querySelectorAll(self, selector: str) -> List['ElementHandle']:
"""Get all elelments which matches `selector`."""
remoteObject = await self._rawEvaluate(
'selector => Array.from(document.querySelectorAll(selector))',
selector,
)
response = await self._client.send('Runtime.getProperties', {
'objectId': remoteObject.get('objectId', ''),
'ownProperties': True,
})
properties = response.get('result', {})
result: List[ElementHandle] = []
releasePromises = [helper.releaseObject(self._client, remoteObject)]
for prop in properties:
value = prop.get('value', {})
if prop.get('enumerable') and value.get('subtype') == 'node':
result.append(ElementHandle(self._client, value, self._mouse,
self._touchscreen))
else:
releasePromises.append(
helper.releaseObject(self._client, value))
await asyncio.gather(*releasePromises)
return result
#: Alias to querySelector
评论列表
文章目录