因此,我有一个函数可以返回下一个函数所需的page
:
async function browser(){
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox'], headless: false, devtools : true});
const incog = await browser.createIncognitoBrowserContext();
const page = await incog.newPage();
await page.goto('web')
.then(function(){
page.evaluate(function(){
$(document).ready(function(){
$('input[name ="username"]').val("a");
$('input[name ="password"]').val("b");
$(document).ready(function(){
$('#loginbtn').click();
});
});
});
});
await page.waitForNavigation({waitUntil : 'load'});
return page;
因此,我通过执行以下操作传递结果值browser()
browser().then(result => nextFunction(result)
最终将页面传递到nextFunction()
async function nextFunction(page){
await page.goto('web')
.then(function(){
var msg = "Test : \n\n";
page.evaluate(function(){
var num = 1;
$('.card').each(function(i, e){
msg += "======= Activity "+num+" ========\n";
msg += "Subject : " + $(this).find('.name').text() + "\n";
msg += "Due : " + $(this).find('.date').text() + "\n";
msg += "===== End Activity "+num+" ======\n\n";
num++;
});
});
console.log(msg);
});
}
我尝试从msg
打印nextFunction()
,但只打印Test:
我想实现的目标是:
获取msg
结果或从nextFunction()
的返回值分配变量
有什么解决方案或更好的方法吗?
答案 0 :(得分:1)
message.getMessageId()
链接。同时使用它们会使代码难以阅读。异步/等待对于错误处理而言更具可读性,并且不那么棘手。了解更多here Future<Stream> getDevicesForSynchronized() async {
return dbRef.child(DEVICES).limitToLast(10).onValue;
}
中查看then
,请收听“控制台”事件:console.log
evaluate
上下文与Puppeteer分开,因此评估的const page = await browser.newPage();
page.on('console', msg => console.log(msg.text()));
将是page.evaluate
。移动msg
进行评估,然后将结果返回给puppeteer。undefined