2016-06-12 15 views
7

私は、PythonとSeleniumライブラリを使ってテストスイートをコーディングしています。クロムドライバを使用して、私はプロキシを設定しています:Pythonを使ってSeleniumでchromedriver proxy authを設定する

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument('--proxy-server=%s' % hostname + ":" + port) 
global driver 
driver = webdriver.Chrome(chrome_options=chrome_options) 

これは、プロキシが認証を持っていないときにうまくいきます。しかし、代理人がにユーザ名とパスワードでログインする必要がある場合、それは動作しません。 add_argumentまたは他のメソッドを使用してクロムドライバにプロキシ認証情報を渡す正しい方法と適切な方法は何ですか?

それは同じではありません:として見How to set Proxy setting for Chrome in Selenium Java

  1. は、私は別の言語
  2. そのFirefoxのtsは、クロムではありません。
  3. --proxy-server = http://user:[email protected]:8080は機能しません。
+0

http://stackoverflow.com/questions/30451190/how-to-use-authenticated-proxy-in-selenium-chromedriver –

+0

@KirilS。そのトピックで言われたことに基づいて、私はこれを達成するためにクロームの拡張を必要としますか? – Jorge

+0

Firefoxとは異なり、ChromeはOSプロキシ(独自のものではありません)を使用しているため、テストする前に適切なプロキシ設定を使用してOSを設定します(Windowsの場合は、セレン試験); 2 - テストからのOSプロキシ設定の設定(複雑すぎるかもしれません)。 3 - 特別なアドオンを使用すると、その場でプロキシ設定を変更できるようになります。 @KirilS。 –

答えて

1

DesiredCapabilitiesを使用してください。私は正常以下でプロキシ認証を使用している:

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

proxy = {'address': '123.123.123.123:2345', 
     'usernmae': 'johnsmith123', 
     'password': 'iliketurtles'} 


capabilities = dict(DesiredCapabilities.CHROME) 
capabilities['proxy'] = {'proxyType': 'MANUAL', 
         'httpProxy': proxy['address'], 
         'ftpProxy': proxy['address'], 
         'sslProxy': proxy['address'], 
         'noProxy': '', 
         'class': "org.openqa.selenium.Proxy", 
         'autodetect': False} 

capabilities['proxy']['socksUsername'] = proxy['username'] 
capabilities['proxy']['socksPassword'] = proxy['password'] 

driver = webdriver.Chrome(executable_path=[path to your chromedriver], desired_capabilities=capabilities) 

EDIT:残念ながら、この方法は、もはやこの記事以来、セレンやChromeのいずれかに更新の1以来働くようです。今のところ、私は別の解決策を知らないが、私は何かを見つけたらこれを試して更新するだろう。

+0

それは私のためには機能しませんでした、私は動的に生成された拡張機能を使用しなければなりませんでした。私はもう一度やり直します。私はSelenium .NETを使用しています。それは理由です。 – Toolkit

+1

typo 5行目の 'username'が' usernmae'と書かれています – Stack

+1

このメソッドは、認証を必要とするクロムドライバとプロキシで動作しません。 – Stack

関連する問題