javascript - 为什么 Java 中的 'executeAsyncScript (window.setTimeout (5000))' 函数会在 5 秒后等待下一个函数执行?

标签 javascript selenium selenium-webdriver

我想使用异步函数调用来异步运行一些脚本,但我无法使用 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("Search term!!");

按照这个顺序,浏览器等待 5 秒,然后执行 sendkeys()。

最佳答案

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

请参阅此处以获取完整说明 WebDriver executeAsyncScript vs executeScript

关于javascript - 为什么 Java 中的 'executeAsyncScript (window.setTimeout (5000))' 函数会在 5 秒后等待下一个函数执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720104/

相关文章:

javascript - Backbone.js 事件未触发

javascript - Selenium 是否集成 "independent"浏览器(通过网络驱动程序)或使用操作系统中安装的现有浏览器?

eclipse - 类型 org.openqa.selenium.chrome.ChromeDriver 不可访问

Java、Cucumber 和 Selenium : Problems with navigate(). to()

javascript - 如何将数据输入 JavaScript 并使用 JQuery 进行渲染?

javascript - 如何显示href的react-intl翻译结果?

python - 使用 Selenium 和 Python 从头开始​​使用 while 循环连接超时

java - 使用 Apache POI 从 Excel 文件读取单元格值

java - 如何使用 xpath 获取遵循特定部分中的模式的链接?

javascript document.cookie 缺少一些对