sin*_*015 1 javascript node.js puppeteer
所以,我有一个返回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;
Run Code Online (Sandbox Code Playgroud)
因此,我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);
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试msg从打印nextFunction(),但它只打印Test:
我想要实现的是:msg从返回值获取结果或分配变量nextFunction()
有没有解决方案或更好的方法来做到这一点?
then. 两者同时使用会使代码难以阅读。async/await 更具可读性,错误处理也更简单。在这里阅读更多内容 console.log,evaluate请监听 'console' 事件:const page = await browser.newPage();
page.on('console', msg => console.log(msg.text()));
Run Code Online (Sandbox Code Playgroud)
page.evaluatecontext 与 Puppeteer 是分开的,因此评估msg将是undefined. 移动 进行msg评估,然后将结果返回给 puppeteer。let msg = await page.evaluate(function(){
let msg = "Test : \n\n";
let 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++;
});
return msg;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4306 次 |
| 最近记录: |