Protractor: рдХреНрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рд╕рд┐рддре░ 2013  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/protractor

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

capabilities: {
  'proxy': {
    'proxyType': 'manual',
    'httpProxy': 'hostname.com:1234'
  }
}

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдкрдХреЛ рдЗрд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ capabilities рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Webdriver proxies рдХреЗ рд▓рд┐рдП JSON рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдбреЙрдХ рдХреЛ рджреЗрдЦреЗрдВ: https://code.google.com/p/selenium/wiki/DesiredCapabilities#Proxy_JSON_Object

рдХреЛрд╢рд┐рд╢ рдХреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЕрдиреБрднрд╡рд╣реАрдирддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░реЗрдЧрд╛ред

capabilities: {
  'proxy': {
    'proxyType': 'manual',
    'httpProxy': 'hostname.com:1234'
  }
}

рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╣рдорд╛рд░реЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдореИрдВ рдЧрд▓рдд рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

> Fatal error: protractor exited with code: 1

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рд╣реИ:

// A reference configuration file.
exports.config = {
   // ----- How to setup Selenium -----
   //
   // There are three ways to specify how to use Selenium. Specify one of the
   // following:
   //
   // 1. seleniumServerJar - to start Selenium Standalone locally.
   // 2. seleniumAddress - to connect to a Selenium server which is already
   //    running.
   // 3. sauceUser/sauceKey - to use remote Selenium servers via SauceLabs.

   // The location of the selenium standalone server .jar file.
   seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
   // The port to start the selenium server on, or null if the server should
   // find its own unused port.
   seleniumPort: null,
   // Chromedriver location is used to help the selenium standalone server
   // find chromedriver. This will be passed to the selenium jar as
   // the system property webdriver.chrome.driver. If null, selenium will
   // attempt to find chromedriver using PATH.
   chromeDriver: './selenium/chromedriver',
   // Additional command line options to pass to selenium. For example,
   // if you need to change the browser timeout, use
   // seleniumArgs: ['-browserTimeout=60'],
   seleniumArgs: [],

   // If sauceUser and sauceKey are specified, seleniumServerJar will be ignored.
   // The tests will be run remotely using SauceLabs.
   sauceUser: null,
   sauceKey: null,

   // ----- What tests to run -----
   //
   // Spec patterns are relative to the location of this config.
   specs: [
      './e2e/*-spec.js'
   ],

   // ----- Capabilities to be passed to the webdriver instance ----
   //
   // For a full list of available capabilities, see
   // https://code.google.com/p/selenium/wiki/DesiredCapabilities
   // and
   // https://code.google.com/p/selenium/source/browse/javascript/webdriver/capabilities.js
   capabilities: {
      'browserName': 'chrome',
      'proxy': {
         'proxyType': 'manual',
         'httpProxy': 'https://localhost.com:8443/'
      }
   },

   // A base URL for your application under test. Calls to protractor.get()
   // with relative paths will be prepended with this.
   baseUrl: 'http://localhost:9999',

   // Selector for the element housing the angular app - this defaults to
   // body, but is necessary if ng-app is on a descendant of <body>
   rootElement: 'body',

   // ----- Options to be passed to minijasminenode -----
   jasmineNodeOpts: {
      // onComplete will be called just before the driver quits.
      onComplete: null,
      // If true, display spec names.
      isVerbose: true,
      // If true, print colors to the terminal.
      showColors: true,
      // If true, include stack traces in failures.
      includeStackTrace: true,
      // Default time to wait in ms before a test fails.
      defaultTimeoutInterval: 10000
   }
};

рдореИрдВрдиреЗ рдЖрдкрдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдПрдХ рдлрд░реНрдЬреА httpProxy рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ 'рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝ рдкрд╛рддрд╛, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдЕрднреА рднреА рдЪрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ? рд╡реЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреИрд╕реЗ рдЕрд╕рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЬреЛ рдХрд╛рдо рдорд┐рд▓рд╛ рд╣реИ рд╡рд╣ рд╣реИ рдмрд╕ рдмреЗрд╕рд▓ рдХреЛ https рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдЗрд╕ рддрд░рд╣:

exports.config = {
   seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',

   seleniumPort: null,

   chromeDriver: './selenium/chromedriver',

   seleniumArgs: [],

   sauceUser: null,
   sauceKey: null,

   specs: [
      './e2e/*-spec.js'
   ],

   capabilities: {
      'browserName': 'chrome'
   },

   baseUrl: 'https://localhost:8443/',

   rootElement: 'body',

   jasmineNodeOpts: {
      // onComplete will be called just before the driver quits.
      onComplete: null,
      // If true, display spec names.
      isVerbose: true,
      // If true, print colors to the terminal.
      showColors: true,
      // If true, include stack traces in failures.
      includeStackTrace: true,
      // Default time to wait in ms before a test fails.
      defaultTimeoutInterval: 10000
   }
};

рдирдорд╕реНрддреЗ,

рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЬреЛ рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЕрдм рдиреЛрдкреНрд░реЛрдХреНрд╕реА рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХреВрдВред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди noProxy рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдлреИрдВрдЯрдордЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  'proxy': {
      'proxyType': 'manual',
      'httpProxy': 'http://proxy.blah.co.uk:8080'
      'httpsProxy': 'http://proxy.blah.co.uk:8080'
      'noProxy': 'blah.blah.co.uk,*blah.blah.co.uk,.blah.blah.co.uk'
  }

},

рдирдорд╕реНрддреЗ,
рдореИрдВ рдЗрд╕реЗ рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореИрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ:

'proxy': {
  'proxyType': 'manual',
  'httpProxy': 'user:[email protected]:3128'
  'sslProxy': 'user:[email protected]:3128'
}

рддрдерд╛

'proxy': {
  'proxyType': 'manual',
  'httpProxy': 'http://user:[email protected]:3128'
  'sslProxy': 'http://user:[email protected]:3128'
}

рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ https://docs.angularjs.org/tutorial/step_03 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ рд╣реЛрд╕реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдкреЛрд░реНрдЯ рдФрд░ рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдореИрдВ рдХрдВрдкрдиреА рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рдм рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдорджрдж?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдЪрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рдереА

 http_proxy   http://user:password<strong i="6">@proxy_url</strong>:port
 https_proxy   http://user:password<strong i="7">@proxy_url</strong>:port

рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ GE рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ http_proxy рдФрд░ https_proxy рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░ рдХреЛ Saucelabs рдХреЛ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рдирд┐рдХрд╛рд╕ рдХреЛрдб рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ Saucelabs рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рджреЗрддрд╛ рд╣реИред

@jonniespratley protractor config --proxy=http://user:password<strong i="6">@proxy_url</strong>:port рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рд╕реЙрд╕ рд▓реИрдм рдкрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ ETIMEDOUT рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВ рдХреЙрд░рдкреЛрд░реЗрдЯ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдкреАрдЫреЗ рд╣реВрдБ рдФрд░ рдореИрдВрдиреЗ рдкреНрд░реЛрдХреНрдЯрд░ рдХреЛ рдХреЙрдиреНрдЯреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐ рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣реА рд╣реИ

Error: ETIMEDOUT connect ETIMEDOUT 151.444.33.22:80
    at ClientRequest.<anonymous> (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:174:16)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at Socket.socketErrorListener (_http_client.js:259:9)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at emitErrorNT (net.js:1253:8)
    at doNTCallback2 (node.js:439:9)
    at process._tickCallback (node.js:353:17)
From: Task: WebDriver.createSession()
    at Function.webdriver.WebDriver.acquireSession_ (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:157:22)
    at Function.webdriver.WebDriver.createSession (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:131:30)
    at [object Object].Builder.build (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/selenium-webdriver/builder.js:445:22)
    at [object Object].DriverProvider.getNewDriver (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/lib/driverProviders/driverProvider.js:42:27)
    at [object Object].Runner.createBrowser (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/lib/runner.js:190:37)
    at /Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/lib/runner.js:280:21
    at _fulfilled (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/q/q.js:796:13)
    at /Users/user123/Desktop/Sample/example-sandbox/node_modules/protractor/node_modules/q/q.js:556:49
[launcher] Process exited with error code 1

рдХреЛрдИ рдЙрдкрд╛рдп? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╣реВрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред

/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/lib/promise.js:654
    throw error;
    ^

Error: ETIMEDOUT connect ETIMEDOUT 208.52.180.201:80
    at ClientRequest.<anonymous> (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/http/index.js:381:15)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at Socket.socketErrorListener (_http_client.js:259:9)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at emitErrorNT (net.js:1253:8)
    at doNTCallback2 (node.js:441:9)
    at process._tickCallback (node.js:355:17)
From: Task: WebDriver.createSession()
    at Function.createSession (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/lib/webdriver.js:329:24)
    at Builder.build (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/builder.js:458:24)
    at Object.<anonymous> (/Users/Documents/coding/sublime/simpleboilerplate/bs.js:13:3)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3
From: Task: WebDriver.navigate().to(http://www.google.com)
    at WebDriver.schedule (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/lib/webdriver.js:377:17)
    at Navigation.to (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/lib/webdriver.js:1027:25)
    at WebDriver.get (/Users/Documents/coding/sublime/simpleboilerplate/node_modules/selenium-webdriver/lib/webdriver.js:795:28)
    at Object.<anonymous> (/Users/Documents/coding/sublime/simpleboilerplate/bs.js:15:8)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)

рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рдХреЙрд░рдкреЛрд░реЗрдЯ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдХреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕рд░реНрд╡рд░ рдкрд░ webDriverProxy рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:

exports.config = {
    framework: 'jasmine',
    seleniumAddress: 'https://yourCloudName.perfectomobile.com/nexperience/perfectomobile/wd/hub',

    webDriverProxy: 'http://your.proxy.here:8080',

    capabilities: { ... },
    specs: ['myspec.js']
};

рдореИрдВ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕ рдХреЛрдб рдХреЛ conf.js рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
'рдкреНрд░реЙрдХреНрд╕реА': {
'рдкреНрд░реЙрдХреНрд╕реА рдЯрд╛рдЗрдк': 'рдореИрдиреБрдЕрд▓',
'httpProxy': ' рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: [email protected] : 8080'
'sslProxy': ' рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: [email protected] : 8080'
}

рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдмрдврд╝ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рдВ рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореЗрд░рд╛ рдЖрд╡реЗрджрди рдЪрд▓рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗред
рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@gregjacobs рдореИрдВ рд╕рдВрдкреВрд░реНрдг рдХреЗ рд╕рд╛рде рднреА WebDriverProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред 4.x рдпрд╛ 5.x рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕реЗ рдЕрдм рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдпрд╣ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

Https://github.com/angular/protractor/blob/master/lib/config.ts рд╕реЗ рдХреЛрдИ рднреА рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рдХрд▓реНрдк рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА v5 рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕реМрднрд╛рдЧреНрдп рдорд┐рд▓рд╛ рдерд╛?

@ рдбреЗрд▓реА 6z
рдЗрди рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд BrowserMob рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ - рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

  capabilities: {
    'browserName': 'chrome',
    'args': ['disable-web-security'],
    'proxy': {
      'proxyType': 'manual',
      'httpProxy': '10.179.70.127:10801',
      'sslProxy': '10.179.70.127:10801',
      "autodetect": 'false'

    }
}

@gregjacobs рдореБрдЭреЗ webDriverProxy рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХреИрд╕реЗ?

@ luker2 рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдмрд┐рд▓рдХреБрд▓ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди webDriverProxy: 'http://username:[email protected]:8080' рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? (рдЬрд╣рд╛рдВ 8080 рдЖрдкрдХреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдкреЛрд░реНрдЯ рд╣реИ?)

@gregjacobs рд╣рд╛рдБ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкреАрдЫрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣реА рдХрд╛рдо рдЦрддреНрдо рд╣реБрдЖ!

рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: рдкрд╛рд╕рд╡рд░реНрдб рднрд╛рдЧ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░рдирд╛ рдкрдбрд╝рд╛ ...

webDriverProxy: `http://${encodeURIComponent(username)}:${encodeURIComponent(password)}@your.proxy.here:8080`

@ luker2 рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдЕрдЪреНрдЫреА рдкрдХрдбрд╝!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

vdrulerz picture vdrulerz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

davidkarlsen picture davidkarlsen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

psech picture psech  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tmeneau picture tmeneau  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andyman3693 picture andyman3693  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ