$ 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(); | |
| }); | |
| }); |