asa*_* kL 8 javascript puppeteer
我尝试启动一个浏览器并根据需要使用它,但我不知道如何将其设置为变量.
// return promise
puppeteer.launch()
Run Code Online (Sandbox Code Playgroud)
这个 :
// It's not working
let bro;
puppeteer.launch()
.then(res => bro = res);
Run Code Online (Sandbox Code Playgroud)
这个:
//It's not working too
let bro;
puppeteer.launch()
.then(res => bro = res);
while (bro === undefined) {
}
bro.newPage();
Run Code Online (Sandbox Code Playgroud)
请告诉我如何启动浏览器并根据需要使用它:
//
let bro
// launch browser
bro.newPage()
...
Run Code Online (Sandbox Code Playgroud)
例如,在react中我可以调用异步函数
axios.post("/postOnePage", data)
.then(res => {
this.setState({onePageCount: res.data.wordCount});
})
.catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)
将结果设置为变量并根据需要使用它
如果你使用的话,它非常简单async/await:
const browser = await puppeteer.launch();
const page = await browser.newPage();
Run Code Online (Sandbox Code Playgroud)
注意:将其包装在async函数内。
基本上puppeteer.launch()返回一个解析为浏览器实例的承诺。所以你可以简单地像上面那样初始化一个变量来获取浏览器。我想then这会有点混乱,你必须在then街区内工作。
const browser = puppeteer.launch();
browser.then((brw) => {
const page = brw.newPage();
page.then(pg => {
pg.goto('https://example.com').then(() => {
pg.screenshot({
path: 'example.png'
}).then(() => {
brw.close();
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
您还可以参考Puppeteer API。该文档带有示例,非常好。希望它能进一步有所帮助。
编辑1:
示例工作示例:
const puppeteer = require('puppeteer');
async function getScreenshot(page) {
await page.screenshot({
path: 'exampleShot.png'
});
}
async function newPageAndScreenshot(browser) {
const page = await browser.newPage();
await page.goto('https://www.github.com');
await page.screenshot({
path: 'github.png'
});
//you can also call getScreenshot here.
//await getScreenshot(page);
}
async function run() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await getScreenshot(page);
await newPageAndScreenshot(browser);
//Some other function calls may be.
browser.close();
}
run();
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
1561 次 |
| 最近记录: |