How can i set proxy with authentication in selenium chrome web driver using python How can i set proxy with authentication in selenium chrome web driver using python google-chrome google-chrome

How can i set proxy with authentication in selenium chrome web driver using python


Inspired by this this solution in php, i wrote a equivalent in python:

from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsimport zipfilemanifest_json = """{    "version": "1.0.0",    "manifest_version": 2,    "name": "Chrome Proxy",    "permissions": [        "proxy",        "tabs",        "unlimitedStorage",        "storage",        "<all_urls>",        "webRequest",        "webRequestBlocking"    ],    "background": {        "scripts": ["background.js"]    },    "minimum_chrome_version":"22.0.0"}"""background_js = """var config = {        mode: "fixed_servers",        rules: {          singleProxy: {            scheme: "http",            host: "XXX.XXX.XXX.XXX",            port: parseInt(XXXX)          },          bypassList: ["foobar.com"]        }      };chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});function callbackFn(details) {    return {        authCredentials: {            username: "XXXXXXXXX",            password: "XXXXXXXXX"        }    };}chrome.webRequest.onAuthRequired.addListener(            callbackFn,            {urls: ["<all_urls>"]},            ['blocking']);"""pluginfile = 'proxy_auth_plugin.zip'with zipfile.ZipFile(pluginfile, 'w') as zp:    zp.writestr("manifest.json", manifest_json)    zp.writestr("background.js", background_js)co = Options()co.add_argument("--start-maximized")co.add_extension(pluginfile)driver = webdriver.Chrome("path/to/chromedriver",  chrome_options=co)driver.get("http://www.google.com.br")

In background_js string, replace the XXX with your information.