У меня есть следующий код, который должен подождать 2 секунды, пока выполняется этот асинхронный Javascript, а затем вызвать обратный вызов.Но по какой-то причине arguments[0]
не является обратным вызовом, хотя найденная мною документация Selenium гласит, что с execute_async_script
функция обратного вызова автоматически вводится в массив arguments
.
driver.execute_async_script(f"""
function sleep(ms) {{
return new Promise(resolve => setTimeout(resolve, ms));
}}
async function test() {{
console.log("before 2")
await sleep(2000)
console.log("after 2")
console.log(arguments)
arguments[0]()
}}
test()
""")
arguments
зарегистрирован как пустой массив.
Что происходит?
Документация Selenium: https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebDriver.html#executeAsyncScript