.document.executeScript() 建议编辑
在当前选定框架的上下文中,将一段 JavaScript 代码片段注入页面以执行。假定执行的脚本是同步的。
script 参数以函数体的形式定义要执行的脚本。该函数返回的值将返回给客户端。
该函数将使用提供的 args 数组调用,这些值可以通过 arguments 对象按指定顺序访问。
在内部,如果 body
参数是函数,则使用 function.toString()
将其转换为字符串。任何对当前范围的引用都会被忽略。
为了确保跨浏览器兼容性,指定的函数不应该使用 ES6 格式(即 () => {}
)。如果函数执行失败,回调的第一个参数将包含错误信息。
用法
.execute(body, [args], [callback])
.executeScript(body, [args], [callback])
.document.execute(body, [args], [callback])
.document.executeScript(body, [args], [callback])
示例
describe('execute script', function() {
it('executes a script in browser', function(browser) {
browser.executeScript(function(imageData) {
// resize operation
return true;
}, [imageData], function(result) {
// whatever is returned by the script passed above will be available
// as result.value
console.log(result.value); // true
});
// scroll to the bottom of the page.
browser.executeScript('window.scrollTo(0,document.body.scrollHeight);');
});
it('executes a script with ES6 async/await', async function(browser) {
const result = await browser
.document.executeScript(function(imageData) {
// resize operation
return true;
}, [imageData]);
console.log(result); // true
});
});
参数
名称 | 类型 | 描述 |
---|---|---|
body |
string | function | 要注入的函数体。 |
args |
数组 | 将传递给函数的参数数组。 |
callback 可选 |
function | 命令完成时要调用的可选回调函数。 |
返回值
类型 | 描述 |
---|---|
* | 脚本结果。 |