簡體   English   中英

使用Python使用Selenium設置chromedriver代理auth

[英]Setting chromedriver proxy auth with Selenium using Python

我正在使用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的正確和正確方法是什么?

它與以下內容不同: 如何在Selenium Java中為Chrome設置代理設置

看作:

  1. 我用另一種語言
  2. 它的火狐,而不是鉻。
  3. --proxy-server = http:// user:password@proxy.com:8080不起作用。

使用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。 截至目前,我不知道另一種解決方案,但如果我發現任何問題,我將進行實驗和更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM