Skip to content

Instantly share code, notes, and snippets.

@jbreckmckye
Created April 19, 2017 09:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbreckmckye/3e12f4d8f97ed41719d138d91640c715 to your computer and use it in GitHub Desktop.
Save jbreckmckye/3e12f4d8f97ed41719d138d91640c715 to your computer and use it in GitHub Desktop.
Simple script to start up Chrome with Selenium, run an operation, take a screenshot and exit
const fs = require('fs');
const selenium = require('selenium-standalone');
const webdriver = require('webdriverio');
installSelenium()
.then(startSelenium)
.then(runTest)
.then(stopSelenium);
function installSelenium() {
return new Promise(resolve => {
selenium.install({
logger: msg => console.log(msg)
}, resolve);
})
}
function startSelenium() {
return new Promise((resolve, reject) => {
console.log('Visual Regression: Starting selenium');
selenium.start(function (err, child) {
if (err) return reject(err);
selenium.child = child;
resolve();
});
});
}
function runTest() {
return new Promise((resolve, reject) => {
console.log('Visual Regression: Opening Chrome');
const browser = webdriver.remote({
desiredCapabilities: {
browserName: 'chrome'
}
}).init();
browser.url('http://webdriver.io')
.then(()=> browser.getTitle())
.then(title => console.log('Title', title))
.then(()=> browser.keys('ArrowDown'))
.then(()=> browser.saveScreenshot())
.then(image => fs.writeFileSync('./myShot.png', image))
.then(()=> console.log('Screeny!'))
.then(browser.end)
.then(resolve)
.catch(reject);
});
}
function stopSelenium() {
return new Promise(resolve => {
console.log('Visual Regression: Stopping selenium');
selenium.child.kill();
resolve();
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment