Javascript 为什么';executeAsyncScript(window.setTimeout(5000))&x27;Java for selenium中的函数是否在5秒后保留下一个要执行的函数?

Javascript 为什么';executeAsyncScript(window.setTimeout(5000))&x27;Java for selenium中的函数是否在5秒后保留下一个要执行的函数?,javascript,selenium,selenium-webdriver,Javascript,Selenium,Selenium Webdriver,我想使用一个异步函数调用来异步运行几个脚本,但我无法使用javaScriprtExecutor的executeAsyncScript()函数来实现。 这里有一个小片段供您参考 我认为函数“executeAsyncScript”应该异步运行,第2行的函数调用(本质上更快)应该在executeAsyncScript()之前完成。但这并没有发生。只有在函数1的执行结束(包括5秒延迟)时,才会调用第2行的函数调用 有谁能帮助我理解我在这里看不到的是什么 1。js.executeAsyncScript(“

我想使用一个异步函数调用来异步运行几个脚本,但我无法使用javaScriprtExecutor的executeAsyncScript()函数来实现。 这里有一个小片段供您参考

我认为函数“executeAsyncScript”应该异步运行,第2行的函数调用(本质上更快)应该在executeAsyncScript()之前完成。但这并没有发生。只有在函数1的执行结束(包括5秒延迟)时,才会调用第2行的函数调用

有谁能帮助我理解我在这里看不到的是什么

1。js.executeAsyncScript(“window.setTimeout(arguments[arguments.length-1],5000);”;
2.driver.findElement(By.xpath(“//input”).sendKeys(“搜索词!!”);

按照此顺序,浏览器WAI 5秒钟,然后执行sendkeys()。

两个函数executeAsyncScript和execteScript都会阻止WebDriver控制流,直到它们完成为止。这就是为什么延迟5秒

完整的解释见此

那么我如何异步运行这样的场景呢?您是否有更好的实时方式使用executeAsyncScript使脚本运行更快?如果您根据问题使用javascript executor for wait,则可以尝试webdriver wait。这是为了了解异步的工作原理。希望看到一个示例代码,以真正看到异步发生的情况。因此,这两行代码。与Webdriver无关,请稍候。我认为等待和任何其他后续功能可能是看到它发生的最好方式,但它就是不起作用。你有什么样品可以分享吗?提前感谢。如果我要求为wat提供5000毫秒的异步脚本,它将等待该时间。这里的异步并不意味着在没有响应之前跳过命令。请参考-如果我要求为wat提供5000毫秒的异步脚本,它将等待该时间。这里的异步并不意味着在没有响应之前跳过命令。提及-