Protractor: Apakah ada cara untuk menentukan server proxy di Config?

Dibuat pada 28 Sep 2013  ·  24Komentar  ·  Sumber: angular/protractor

question

Komentar yang paling membantu

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

Semua 24 komentar

Bisakah Anda menunjukkan contohnya?

Anda perlu menentukannya di bagian capabilities dari konfigurasi. Lihat dokumen ini untuk informasi tentang cara membuat konfigurasi JSON untuk proxy webdriver: https://code.google.com/p/selenium/wiki/DesiredCapabilities#Proxy_JSON_Object

Sudah mencobanya, tidak benar-benar berhasil untuk saya. Bisa jadi saya kurang pengalaman dengannya. Apakah Anda atau seseorang memiliki contoh cepat yang dapat Anda tunjukkan? Ini akan sangat membantu.

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

Solusi ini tidak berfungsi untuk penyiapan kami. Ada ide apa yang saya lakukan salah? Saya mendapatkan kesalahan berikut di baris perintah ketika mencoba menjalankan Protractor:

> Fatal error: protractor exited with code: 1

Ini file konfigurasi saya:

// 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
   }
};

Saya mencoba kemampuan Anda, dan itu berhasil untuk saya. Ketika saya memasukkan httpProxy palsu saya melihat kesalahan 'tidak dapat terhubung ke proxy' di browser, tetapi tes masih mencoba untuk berjalan. Apakah pengujian Anda berjalan dengan benar tanpa proxy? Bagaimana mereka gagal dalam kasus itu?

Oke, apa yang saya temukan berfungsi adalah hanya mengatur baseurl ke situs pengujian https, seperti ini:

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
   }
};

Hai,

Saya berhasil mendapatkan proxy yang berfungsi dengan apa yang telah kalian lakukan di sini jadi terima kasih untuk itu, sekarang saya ingin menambahkan variabel noProxy sehingga saya dapat mengecualikan layanan internal saya untuk pergi ke proxy. Saya telah mencoba yang berikut ini tetapi bagian noProxy tidak digunakan. Saya menggunakan PhantomJs.

  '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'
  }

},

Hai,
Saya tidak dapat membuatnya berfungsi dengan proxy yang diautentikasi. Saya telah mencoba:

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

dan

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

Saya mencoba menyelesaikan https://docs.angularjs.org/tutorial/step_03 , menggunakan browser Chrome.

Juga tidak berhasil untuk saya - saya harus menyediakan host: port bersama dengan nama pengguna / kata sandi dan saya mencoba semua saran di atas dan sepertinya tidak ada yang berhasil. Namun, ketika saya keluar dari internet perusahaan dan mencoba tanpa proxy, semuanya berfungsi dengan baik. Ada bantuan?

Sebenarnya, masalah saya diselesaikan dengan menyiapkan variabel sistem

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

Ini perlu dibuka kembali, di sini di GE Software, pengaturan http_proxy dan https_proxy dalam konfigurasi masih tidak mengizinkan Protractor untuk mengirim Saucelabs kode keluar akhir dari hasil pengujian, membuat Saucelabs gagal dalam pengujian karena tidak aktif.

@jonniespratley apakah protractor config --proxy=http://user:password<strong i="6">@proxy_url</strong>:port tidak berfungsi untuk Anda?

Saya mencoba menjalankan uji busur derajat di lab saus tetapi mendapatkan kesalahan ETIMEDOUT. Saya berada di belakang firewall perusahaan dan saya telah mengkonfigurasi proxy dalam file konfigurasi busur derajat dan variabel lingkungan. Konfigurasi sepertinya tidak berfungsi. Di bawah ini adalah kesalahan yang saya dapatkan

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

Ada ide? Saya akan sangat menghargai bantuannya.

Saya menerima kesalahan serupa. Saya berada di belakang proxy perusahaan dan saya tidak dapat mengirimkan tes ke browserstack.

/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)

Apa yang akhirnya berhasil bagi kami untuk keluar dari proxy perusahaan kami dan ke server selenium perfecto mobile adalah menggunakan webDriverProxy config:

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

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

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

Saya bekerja di belakang proxy perusahaan mencoba menambahkan kode ini di conf.js
'proxy': {
'proxyType': 'manual',
'httpProxy': ' pengguna: [email protected]: 8080'
'sslProxy': ' user: [email protected] : 8080'
}

itu berfungsi dengan baik tetapi waktu eksekusi aplikasi telah meningkat yang hasilnya gagal, Ya saya dapat menambah waktu default tetapi saya tidak ingin aplikasi saya membutuhkan waktu lebih lama untuk dijalankan.
Adakah yang bisa membantu saya untuk memperbaiki ini.

Terima kasih sebelumnya.

@gregjacobs Saya menggunakan webDriverProxy dengan perfecto juga. Itu berhasil untuk saya beberapa waktu yang lalu. Setelah memutakhirkan ke 4.x atau 5.x, saya tidak bisa membuatnya berfungsi lagi. Apakah masih berfungsi untuk Anda setelah peningkatan?

Tidak ada opsi proxy dari https://github.com/angular/protractor/blob/master/lib/config.ts yang berfungsi untuk saya. Ada yang beruntung mengonfigurasi proxy di v5?

@doyan
Proksi dan busur derajat BrowserMob yang mapan dengan kemampuan ini - berfungsi dengan baik

  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 Saya perlu menentukan nama pengguna / kata sandi untuk proxy kami yang digunakan pada properti webDriverProxy . Apa kamu tau bagaimana caranya?

@ luker2 Sayangnya saya tidak begitu yakin, tetapi apakah webDriverProxy: 'http://username:[email protected]:8080' tidak berfungsi? (di mana 8080 adalah port proxy Anda?)

@gregjacobs ya, saya belum menindaklanjuti tetapi itulah yang akhirnya berhasil!

Untuk orang lain, saya juga harus menyandikan url nama pengguna: bagian

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

@ luker2 Luar biasa, senang mendengar Anda berhasil! Dan terima kasih telah memposting bagian tentang uri yang menyandikan nama pengguna dan kata sandi - tangkapan bagus!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat