Да, это очередное из разряда «ненужно». Да, это велосипед, но зато ездит. Я не силен в асинхронном программировании (только пользовался фреймворками) и хочу услышать критику.
Пример кода:
async def test_screenshot(event_loop):
with async aiohttp.ClientSession(loop=event_loop) as session:
chrome = ChromeDevTools(session, loop=event_loop)
tab = await chrome.open_tab(TEST_URL)
rpc = await chrome.connect_tab(tab.id)
# Подождем пока загрузится страница
await asyncio.sleep(5)
response = await rpc.page.capture_screenshot(format='png', quality=100)
print(response)
assert 'result' in response
# Откроем скриншот в браузере
await chrome.open_tab('data:image/png;base64,' + response.result.data)