123456789101112131415161718192021222324252627282930313233343536373839404142 |
- var webdriver = require('selenium-webdriver')
- var firefox = require('selenium-webdriver/firefox')
- var By = webdriver.By
- var path = require('path')
- var chalk = require('chalk')
- // Monitor for errors, and dump them
- function monitorErrors (driver) {
- var promise = driver.executeScript('return window.JSErrorCollector_errors.pump()')
- promise.then(function (errors) {
- if (!errors || !errors.length) {
- return
- }
- errors.forEach(function (error) {
- console.error([
- '[browser-error]',
- chalk.magenta(error.sourceName),
- chalk.dim('#' + error.lineNumber),
- chalk.red(error.errorMessage)
- ].join(' '))
- })
- })
- }
- function setDriver () {
- var profile = new firefox.Profile()
- profile.addExtension(path.join(__dirname, 'xpi', 'firebug-2.0.16.xpi'))
- profile.addExtension(path.join(__dirname, 'xpi', 'JSErrorCollector.xpi'))
- profile.setPreference('extensions.firebug.showChromeErrors', true)
- var options = new firefox.Options().setProfile(profile)
- var driver = new firefox.Driver(options)
- monitorErrors(driver)
- return driver
- }
- module.exports = {
- setDriver,
- By
- }
|