如何解决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 举报,一经查实,本站将立刻删除。