微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium 4:如何绕过Localhost的代理设置

如何解决Selenium 4:如何绕过Localhost的代理设置

作为从Selenium版本3到版本4的更改的一部分,看起来Selenium现在在向浏览器发送命令时将使用您的HTTP_PROXY / HTTPS_PROXY环境设置。如果设置了这两个Envar之一,RemoteConnection._get_proxy_url()似乎没有任何办法不使用代理。 请注意,我指的是Selenium通过代理向浏览器发送命令,而不是让浏览器本身使用代理。

包括在本地主机上运行浏览器的情况。 Selenium绝对希望使用代理,即使它正在向本地主机发送东西,我也看不到有什么方法可以替代此行为,除了在发送命令时临时替代这些envar之外。似乎有些矫kill过正,尤其是如果代理是面向外部网址而不是本地网址的话。

这是完整的堆栈跟踪。如您所见,Selenium 4在发送命令创建会话后立即尝试从一开始就使用代理。

  File "C:\myproject\webdrivers.py",line 143,in get_chrome_webdriver
    driver = webdriver.Chrome(**chrome_kwargs)
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\chrome\webdriver.py",line 64,in __init__
    super(WebDriver,self).__init__(DesiredCapabilities.CHROME['browserName'],"goog",File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\chromium\webdriver.py",line 79,in __init__
    RemoteWebDriver.__init__(
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\remote\webdriver.py",line 183,in __init__
    self.start_session(capabilities,browser_profile)
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\remote\webdriver.py",line 280,in start_session
    response = self.execute(Command.NEW_SESSION,parameters)
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\remote\webdriver.py",line 347,in execute
    response = self.command_executor.execute(driver_command,params)
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\remote\remote_connection.py",line 393,in execute
    return self._request(command_info[0],url,body=data)
  File "C:\myproject\pybin\lib\site-packages\selenium\webdriver\remote\remote_connection.py",line 422,in _request
    resp = http.request(method,body=body,headers=headers)
  File "C:\myproject\pybin\lib\site-packages\urllib3\request.py",in request
    return self.request_encode_body(
  File "C:\myproject\pybin\lib\site-packages\urllib3\request.py",line 171,in request_encode_body
    return self.urlopen(method,**extra_kw)
  File "C:\myproject\pybin\lib\site-packages\urllib3\poolmanager.py",line 488,in urlopen
    return super(ProxyManager,self).urlopen(method,redirect=redirect,**kw)
  File "C:\myproject\pybin\lib\site-packages\urllib3\poolmanager.py",line 334,in urlopen
    response = conn.urlopen(method,**kw)
  File "C:\myproject\pybin\lib\site-packages\urllib3\connectionpool.py",line 754,in urlopen
    return self.urlopen(
  File "C:\myproject\pybin\lib\site-packages\urllib3\connectionpool.py",line 726,in urlopen
    retries = retries.increment(
  File "C:\myproject\pybin\lib\site-packages\urllib3\util\retry.py",line 439,in increment
    raise MaxRetryError(_pool,error or ResponseError(cause))

是否有一种绕过某些URL(尤其是本地主机)的代理设置的首选方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。