Jen*_*nck 6 javascript headless-browser google-chrome-devtools phantomjs
有没有办法从加载的网页触发回调?我以前使用PhantomJS,可以使用以下代码:
if (typeof window.callPhantom === 'function') {
window.callPhantom({ data: 'RenderPDF' });
}
Run Code Online (Sandbox Code Playgroud)
并在phantomjs脚本中:
page.onCallback = function (data) {
/* callback code */
};
Run Code Online (Sandbox Code Playgroud)
您可以使用运行时域中的评估函数在浏览器上评估 javascript 。
window.callChrome下面的示例评估一个函数,该函数返回一个承诺,该承诺将在调用时得到解决。
function callChrome() {
return () => {
return new Promise((resolve, reject) => {
window.callChrome = resolve;
});
});
}
// runtime is located in the client object
Runtime.evaluate({
expression: `(${callChrome()})()`,
awaitPromise: true,
}).then((result) => {
// what you've passed into the window.callChrome function.
});
Run Code Online (Sandbox Code Playgroud)
计算的表达式如下所示。
(() => {
return new Promise((resolve, reject) => {
window.callChrome = resolve;
});
})()
Run Code Online (Sandbox Code Playgroud)
一旦页面准备好,您就应该真正运行这段代码。理想情况下使用该Page.loadEventFired功能。
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |