Skip to content

Instantly share code, notes, and snippets.

@mnpenner
Last active December 5, 2019 16:08
Show Gist options
  • Star 23 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save mnpenner/6441147 to your computer and use it in GitHub Desktop.
Save mnpenner/6441147 to your computer and use it in GitHub Desktop.
Save a screenshot with selenium-webdriver for JavaScript
var webdriver = require('selenium-webdriver');
var fs = require('fs');
var driver = new webdriver.Builder().build();
webdriver.WebDriver.prototype.saveScreenshot = function(filename) {
return driver.takeScreenshot().then(function(data) {
fs.writeFile(filename, data.replace(/^data:image\/png;base64,/,''), 'base64', function(err) {
if(err) throw err;
});
})
};
// example usage
driver.saveScreenshot('mypage.png');
Copy link

ghost commented Feb 24, 2016

Hi Mark, do you have any other documentation for this function?
Thanks,
R.W.

@mnpenner
Copy link
Author

@RoakyWood Not really. I can give you a bigger snippet of how you'd use it...

var webdriverjs = require("webdriverjs");

var client = webdriverjs.remote({
    logLevel: 'silent'
});

client.addCommand('waitClick', function(selector, ms) {
    return this.waitFor(selector, ms || 1000, function(err) {
        expect(err, selector).to.be.null;
    }).click(selector);
});

client.addCommand('waitSetValue', function(selector, value, ms) {
    return this.waitFor(selector, ms || 1000).setValue(selector, value);
});

client
    .waitSetValue('#login',argv.username)
    .waitSetValue('#password',argv.password)
    .waitClick('#login-button')
    .saveScreenshot('login.png')

You can find the Selenium documentation here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment