рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдЖрдкрдХреЛ рдЗрд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ 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 рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдЕрдЪреНрдЫреА рдкрдХрдбрд╝!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА