【发布时间】:2019-09-13 22:54:52
【问题描述】:
我创建了一个 Puppeteer 脚本以在 offline 中运行,我有以下代码来截取屏幕截图。在命令提示符下运行offline-login-check.js 脚本时,有人可以告知屏幕截图的添加位置吗?
const puppeteer = require("puppeteer");
(async() => {
const browser = await puppeteer.launch({
headless: true,
chromeWebSecurity: false,
args: ['--no-sandbox']
});
try {
// Create a new page
const page = await browser.newPage()
// Connect to Chrome DevTools
const client = await page.target().createCDPSession()
// Navigate and take a screenshot
await page.waitFor(3000);
await page.goto('https://sometestsite.net/home',{waitUntil: 'networkidle0'})
//await page.goto(url, {waitUntil: 'networkidle0'});
await page.evaluate('navigator.serviceWorker.ready');
console.log('Going offline');
await page.setOfflineMode(true);
// Does === true for the main page but the fallback content isn't being served.
page.on('response', r => console.log(r.fromServiceWorker()));
await page.reload({waitUntil: 'networkidle0'});
await page.waitFor(5000);
await page.screenshot({path: 'screenshot.png',fullPage: true})
await page.waitForSelector('mat-card[id="route-tile-card]');
await page.click('mat-card[id="route-tile-card]');
await page.waitFor(3000);
} catch(e) {
// handle initialization error
console.log ("Timeout or other error: ", e)
}
await browser.close();
})();
【问题讨论】:
-
pptr.dev - screenshot
If path is a relative path, then it is resolved relative to current working directory -
这是我的测试文件路径
C:\work\sun\UiTests。我没有在那个根位置看到 screenshot.png 文件 -
用这个snippet 试过,但效果很好:(
-
运行这个snippet waitFor方法,然后在同一个目录
ls | GREP .png,它正确地显示screenshot2.png。问题可能是在您的页面上指定的:( -
await page.evaluate('navigator.serviceWorker.ready');我觉得有问题