«execute_async_script» ожидает обратного вызова от javascript.
Как только будет вызван ожидаемый (Python) обратный вызов «arguments [0]», даже если EventListener все еще работает на браузер, Python получил свой обратный вызов. Таким образом, выполняется функция execute_async_script.
Вы можете либо создать logi c в Python, который оценивает значение в ответе, и в соответствии с этим воссоздать другой скрипт или выполнить logi c напрямую. в Javascript что-то вроде: (пользователю нужно нажать «q» для завершения события)
js_script = """
//Callback function
var done = arguments[arguments.length - 1];
//Take all the events
var array_events = []
var retour = (e) => {
array_events.push(e.path)
}
var quit = (key) => {
console.log(array_events);
(key.keyCode == 81 )? done(JSON.stringify(array_events)) : undefined
}
// Listen to the clicks
getPath = document.addEventListener("click", retour, true)
// Listen to the key "q" which means user has gathered all needed events
getKey = document.addEventListener("keydown", quit, true)
"""
response = driver.execute_async_script(js_script)
print(response)