Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only) //将JavaScript片段插入到页面中,以便在当前选定框架的环境中执行(仅限Web环境)
Java | ((JavascriptExecutor) driver).executeAsyncScript("window.setTimeout(arguments[arguments.length - 1], 500);" ); |
Python | self.driver.execute_async_script(‘document.title’) |
Javascript | // webdriver.io example driver.setAsyncTimeout(5000) var result = browser.executeAsync(function(a, b, c, d, done) { // browser context - you may access neither client nor console setTimeout(function() { done(a + b + c + d); }, 3000); }, 1, 2, 3, 4) // node.js context - client and console are available console.log(result); // outputs: 10 // wd example await driver.safeExecuteAsync( 'document.title' ); |
Ruby | # ruby_lib example execute_async_script( "document.title" )# ruby_lib_core example @driver.execute_async_script( "document.title" ) |
C# | // TODO C# sample |
PHP | // TODO PHP sample |
The executed script is assumed to be asynchronous and must signal that is done by invoking the provided callback, which is always provided as the final argument to the function. The value to this callback will be returned to the client.
//假定执行的脚本是异步的,并且必须通过调用提供的回调来发出信号,该回调始终作为函数的最终参数提供。此回调的值将返回给客户端
Asynchronous script commands may not span page loads. If an unload event is fired while waiting for a script result, an error should be returned to the client.
//异步脚本命令不能跨越页面加载。如果在等待脚本结果时触发卸载事件,则应向客户端返回错误
The script argument defines the script to execute in teh form of a function body. The function will be invoked with the provided args array and the values may be accessed via the arguments object in the order specified. The final argument will always be a callback function that must be invoked to signal that the script has finished.
//异步脚本命令不能跨越页面加载。如果在等待脚本结果时触发卸载事件,则应向客户端返回错误。script参数定义以函数体形式执行的脚本
Arguments may be any JSON-primitive, array, or JSON object. JSON objects that define a WebElement reference will be converted to the corresponding DOM element. Likewise, any WebElements in the script result will be returned to the client as WebElement JSON objects.
//如果在等待脚本结果时触发卸载事件,则应向客户端返回错误。script参数定义以函数体形式执行的脚本。将使用提供的args数组调用该函数,并且可以按指定的顺序通过arguments对象访问这些值
Platform | Driver | Platform Versions | Appium Version | Driver Version |
---|---|---|---|---|
iOS | XCUITest | None | None | None |
UIAutomation | None | None | None | |
Android | Espresso | None | None | None |
UiAutomator2 | None | None | None | |
UiAutomator | None | None | None | |
Mac | Mac | None | None | None |
Windows | Windows | None | None | None |
Language | Support | Documentation |
---|---|---|
Java | All | seleniumhq.github.io |
Python | All | selenium-python.readthedocs.io |
Javascript (WebdriverIO) | All | |
Javascript (WD) | All | github.com |
Ruby | All | www.rubydoc.info |
PHP | All | github.com |
C# | All | github.com |
POST /session/:session_id/execute_async
name | description |
---|---|
session_id | ID of the session to route the command to |
name | type | description |
---|---|---|
script | string |
The script to execute |
args | array |
The script arguments |
The script result (any
)