core.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var webdriver = require('selenium-webdriver')
  2. var firefox = require('selenium-webdriver/firefox')
  3. var By = webdriver.By
  4. var path = require('path')
  5. var chalk = require('chalk')
  6. // Monitor for errors, and dump them
  7. function monitorErrors (driver) {
  8. var promise = driver.executeScript('return window.JSErrorCollector_errors.pump()')
  9. promise.then(function (errors) {
  10. if (!errors || !errors.length) {
  11. return
  12. }
  13. errors.forEach(function (error) {
  14. console.error([
  15. '[browser-error]',
  16. chalk.magenta(error.sourceName),
  17. chalk.dim('#' + error.lineNumber),
  18. chalk.red(error.errorMessage)
  19. ].join(' '))
  20. })
  21. })
  22. }
  23. function setDriver () {
  24. var profile = new firefox.Profile()
  25. profile.addExtension(path.join(__dirname, 'xpi', 'firebug-2.0.16.xpi'))
  26. profile.addExtension(path.join(__dirname, 'xpi', 'JSErrorCollector.xpi'))
  27. profile.setPreference('extensions.firebug.showChromeErrors', true)
  28. var options = new firefox.Options().setProfile(profile)
  29. var driver = new firefox.Driver(options)
  30. monitorErrors(driver)
  31. return driver
  32. }
  33. module.exports = {
  34. setDriver,
  35. By
  36. }