$ BROWSER=firefox mocha selenium.js
$ BROWSER=chrome mocha selenium.js
'use strict'; | |
var webdriver = require('selenium-webdriver'); | |
function saveScreenshot(data, filename) { | |
var fs = require('fs'); | |
var path = require('path'), | |
file; | |
filename = filename || 'ss.png'; | |
file = path.join(__dirname,filename); | |
fs.writeFileSync(file, data, 'base64'); | |
} | |
function Browser(browserName) { | |
this.driver = new webdriver.Builder().forBrowser(browserName).build(); | |
} | |
Browser.prototype = { | |
captureScreenShot: function(callback) { | |
this.driver.takeScreenshot().then(function(data) { | |
saveScreenshot(data); | |
callback(); | |
}); | |
} | |
}; | |
module.exports = Browser; |
'use strict'; | |
var browser = process.env.BROWSER || 'phantomjs'; | |
function Config() { | |
switch(browser) { | |
case 'firefox': | |
return 'firefox'; | |
case 'chrome': | |
return 'chrome'; | |
case 'phantom': | |
return 'phantomjs'; | |
case 'phantomjs': | |
return 'phantomjs'; | |
default: | |
throw new Error('Undefined Browser:' + browser); | |
} | |
} | |
module.exports = Config; |
/* global describe, before, it, after */ | |
'use strict'; | |
var Browser = require(__dirname + '/browser'); | |
var browserName = require(__dirname + '/config')(); | |
describe('Selenium', function() { | |
this.timeout(5000); | |
var browser; | |
before(function() { | |
browser = new Browser(browserName); | |
}); | |
it('should return ok', function(done) { | |
browser.driver.get('http://www.google.com/ncr'); | |
browser.captureScreenShot(function() { | |
done(); | |
}); | |
}); | |
after(function() { | |
browser.driver.quit(); | |
}); | |
}); |