web-dev-qa-db-ja.com

Pythonを使用して、Seleniumでchromedriverプロキシ認証を設定する

PythonとSeleniumライブラリを使用してテストスイートをコーディングしています。chromedriverを使用して、次を使用してプロキシを設定しています。

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

これは、プロキシに認証がない場合に正常に機能します。ただし、プロキシでユーザー名とパスワードを使用してログインする必要がある場合は、機能しません。 add_argumentまたは他の方法を使用してプロキシ認証情報をchromedriverに渡すための正しく適切な方法は何ですか?

これは次と同じではありません: SeleniumJavaでChrome)のプロキシ設定を設定する方法

として見る:

  1. 私は別の言語です
  2. そのfirefox、クロムではありません。
  3. --proxy-server = http:// user:[email protected]:808 は機能しません。
9
Jorge

DesiredCapabilitiesを使用します。私は次のようにプロキシ認証を正常に使用しています。

from Selenium import webdriver
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities

proxy = {'address': '123.123.123.123:2345',
         'username': '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)

編集:残念ながら、SeleniumまたはChromeこの投稿以降)のいずれかに更新されたため、このメソッドは機能しなくなったようです。現時点では、別の解決策はわかりませんが、実験して更新します私が何かを見つけたらこれ。

1
crookedleaf