运行Selenium启动Firefox时报urllib3 ProxySchemeUnknown错误求助
报错原因
urllib3.exceptions.ProxySchemeUnknown 报错的核心原因是系统环境变量或Selenium配置中的代理地址缺少协议前缀(http:// 或 https://),urllib3无法识别无协议头的代理地址。
解决方法
方案1:修改系统代理环境变量
检查Windows系统的HTTP_PROXY、HTTPS_PROXY环境变量,确认变量值是否只有类似127.0.0.1:端口号的格式,没有带前缀。如果是,修改为带协议的格式,比如http://127.0.0.1:7890,修改完成后重启终端/IDE再运行代码。方案2:代码中配置Firefox不使用代理
如果你不需要走代理访问目标网站,可以直接在代码中关闭浏览器代理,示例代码如下:
from selenium import webdriver from selenium.webdriver.firefox.options import Options options = Options() options.set_preference("network.proxy.type", 0) # 0代表禁用代理 browser = webdriver.Firefox(options=options) browser.get("http://www.whatsmyip.org")
- 方案3:代码中显式配置带协议头的代理
如果你确实需要使用代理,就在代码中指定完整带前缀的代理地址,示例代码如下:
from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType proxy = Proxy() proxy.proxy_type = ProxyType.MANUAL # 代理地址必须带http://前缀 proxy.http_proxy = "http://你的代理IP:端口号" proxy.ssl_proxy = "http://你的代理IP:端口号" capabilities = webdriver.DesiredCapabilities.FIREFOX proxy.add_to_capabilities(capabilities) browser = webdriver.Firefox(desired_capabilities=capabilities) browser.get("http://www.whatsmyip.org")
修改配置后如果依然报错,完全关闭IDE后重新启动即可清除缓存的旧环境变量。
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

