gpt4 book ai didi

javascript - WebDriver executeAsyncScript 与 executeScript

转载 作者:IT王子 更新时间:2023-10-29 03:14:36 26 4
gpt4 key购买 nike

executeAsyncScript 和 executeScript 有什么区别?我如何使用诸如 window.onload 之类的事件?我试过这样的东西

((JavascriptExecutor) driver).executeAsyncScript("window.onload = function() {alert('Hello')}"); 

但是当然没用...所以如果有人知道它是如何工作的请写一个例子

最佳答案

(保持简单正确。)

execteScriptexecuteAsyncScript 的相关区别是:

使用 executeAsyncScript 调用的函数将“完成回调”作为最后一个参数,必须调用它以表示脚本已完成执行。

这允许它与仅在使用回调时“完成”的代码一起使用 - 例如。 setTimeout 或异步 XHR。如果在超时限制内未调用“完成回调”,则返回的 promise 将被拒绝。

根据 webdriver.WebDriver.executeAsyncScript文档:

Unlike executing synchronous JavaScript with #executeScript, scripts executed with [#executeAsyncScript] must explicitly signal they are finished by invoking the provided callback. This callback will always be injected into the executed function as the last argument..

也就是说,这两个函数都会阻塞 WebDriver 控制流,直到它们完成 - 要么运行完 executeScript 的代码末尾,要么当使用 executeAsyncScript 调用“完成回调”:名称中的“async”表示使用的信号机制,并不意味着/暗示 JavaScript 代码实际上是相对于 WebDriver 异步执行的。

关于javascript - WebDriver executeAsyncScript 与 executeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com