6

我们的网络环境使用代理服务器连接外部互联网,在 IE => Internet Options => Connections => LAN Settings 中配置,如“10.212.20.11:8080”。

现在,我正在为 chrome 和 IE 使用 selenium webdriver,但是启用代理服务器后,我无法启动浏览器。

这是python代码:

from selenium import webdriver
driver = webdriver.Chrome(executable_path='E:\Selenium\WebDrivers\chromedriver.exe')

这是错误消息(如果在 IE“Internet 选项”中禁用代理,它可以正常工作):

Traceback (most recent call last):
  File "E:\WorkSpace\GitHub\selenium\sandbox\test.py", line 4, in <module>
    driver = webdriver.Chrome(executable_path='E:\Selenium\WebDrivers\chromedriver.exe')
  File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 66, in __init__
    self.quit()
  File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in quit
    self.service.stop()
  File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\service.py", line 97, in stop
    url_request.urlopen("http://127.0.0.1:%d/shutdown" % self.port)
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 406, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 438, in error
    result = self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 625, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Python27\lib\urllib2.py", line 406, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 527, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized

那么,如何设置chromedriver的代理呢?(IE驱动也有同样的问题)。

谢谢Ehsan,但我更改了代码,错误仍然存​​在。

from selenium import webdriver

chrome_option = webdriver.ChromeOptions()
chrome_option.add_argument("--proxy-server=10.213.20.62:80" )

driver = webdriver.Chrome(executable_path='E:\Selenium\WebDrivers\chromedriver.exe',
                          chrome_options=chrome_option)

driver.quit()

解决了!只需在 IE => Internet 选项 => 连接 => LAN 设置中,添加不使用代理“127.0.0.1”的异常地址,此问题就解决了!不管怎么说,还是要谢谢你!

4

4 回答 4

3

Chrome 可以使用 selenium web 驱动程序的命令行启动。代理的命令行是:

--代理服务器=:

于 2013-06-19T05:13:25.917 回答
2

我会从痛苦中拯救一个人。如果您的代理服务器需要您传递用户名/密码,则无法直接通过 url 本身传递它。

我想让它与 Proxymesh 一起工作,所以我做了什么,去控制面板并将我的机器列入白名单,这样我的电脑就不需要用户名/密码。

更多 @ https://github.com/webdriverio/webdriverio/issues/324

于 2016-10-07T22:53:33.327 回答
0

它为我工作...

from selenium import webdriver

PROXY = "23.23.23.23:3128" # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")
于 2016-02-29T09:34:05.053 回答
0

这对我有用。请你可以试试。

from selenium import webdriver

PROXY = "23.23.23.23:3128" # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")
于 2017-03-22T10:57:41.750 回答