saveScreenshot
Save a screenshot of the current browsing context to a PNG file on your OS. Be aware that some browser drivers take screenshots of the whole document (e.g. Geckodriver with Firefox) and others only of the current viewport (e.g. Chromedriver with Chrome).
Usage
browser.saveScreenshot(filepath, options, { fullPage=false], format='png'], quality=100], clip] })
Parameters
Name | Type | Details |
---|---|---|
filepath | String | path to the generated image (.png suffix is required) relative to the execution directory |
options | Object | screenshot options |
[options.fullPage=false] optional | Boolean | whether to take a screenshot of the full page or just the current viewport |
[options.format='png'] optional | String | the format of the screenshot (either png or jpeg ) |
[options.quality=100] optional | Number | the quality of the screenshot in case of JPEG format in range 0-100 percent |
[options.clip] optional | Object | clipping a rectangle of the screenshot |
Examples
saveScreenshot.js
it('should save a screenshot of the browser viewport', async () => {
await browser.saveScreenshot('./some/path/screenshot.png');
});
it('should save a screenshot of the full page', async () => {
await browser.saveScreenshot('./some/path/screenshot.png', { fullPage: true });
});
it('should save a screenshot of a specific rectangle', async () => {
await browser.saveScreenshot('./some/path/screenshot.png', { clip: { x: 0, y: 0, width: 100, height: 100 } });
});
it('should save a screenshot of the full page in JPEG format', async () => {
await browser.saveScreenshot('./some/path/screenshot.jpeg', { fullPage: true, format: 'jpeg' });
});
it('should save a screenshot of the full page in JPEG format with quality 50', async () => {
await browser.saveScreenshot('./some/path/screenshot.jpeg', { fullPage: true, format: 'jpeg', quality: 50 });
});
running from a hook, make sure to explicitly define the hook as async:
wdio.conf.js
afterTest: async function(test) {
await browser.saveScreenshot('./some/path/screenshot.png');
}