跳至主要内容

executeAsync

警告

executeAsync 命令已弃用,将在未来版本中移除。请改用 execute 命令,因为它通过 async/await 提供了更好的错误处理支持。

将一段 JavaScript 代码注入页面,以便在当前选定框架的上下文中执行。假设执行的脚本是异步的,并且必须通过调用提供的回调来发出已完成的信号,该回调始终作为函数的最后一个参数提供。此回调的值将返回到客户端。

异步脚本命令可能不会跨页面加载。如果在等待脚本结果时触发了卸载事件,则应向客户端返回错误。

script 参数以函数体形式定义要执行的脚本。该函数将使用提供的 args 数组调用,并且可以通过 arguments 对象按指定顺序访问这些值。最后一个参数将始终是一个回调函数,必须调用它以表明脚本已完成。

参数可以是任何 JSON 基本类型、数组或 JSON 对象。定义 WebElement 引用 JSON 对象将转换为相应的 DOM 元素。同样,脚本结果中的任何 WebElement 都将作为 WebElement JSON 对象返回到客户端。

注意

真的

用法
browser.executeAsync(script, arguments)
参数
名称类型详情
脚本字符串函数要执行的脚本。
参数
可选
参数脚本参数
示例
executeAsync.js
it('should execute async JavaScript on the page', async () => {
await browser.setTimeout({ script: 5000 })
const result = await browser.executeAsync(function(a, b, c, d, done) {
// browser context - you may not access client or console
setTimeout(() => {
done(a + b + c + d)
}, 3000);
}, 1, 2, 3, 4)
// node.js context - client and console are available
console.log(result) // outputs: 10
});

欢迎!我怎样才能帮到您?

WebdriverIO AI Copilot