无法设置代理:selenium.common.exceptions.WebDriverException:拒绝访问

时间:2013-05-05 06:36:30

标签: selenium python-2.7 webdriver selenium-webdriver

我想使用Selenium Webdriver而我无法这样做,因为当我运行我的代码时,我得到以下异常。 我的代码非常基本,如下所示。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com.bh")
assert "Google" in driver.title
driver.close()

Exception Message
selenium.common.exceptions.WebDriverException: Message: '<HTML><HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD>\n<BODY>\n<FONT face="Helvetica">\n<big><strong></strong></big><BR>\n</FONT>\n<blockquote>\n<TABLE border=0 cellPadding=1 width="80%">\n<TR><TD>\n<FONT face="Helvetica">\n<big>Access Denied (authentication_failed)</big>\n<BR>\n<BR>\n</FONT>\n</TD></TR>\n<TR><TD>\n<FONT face="Helvetica">\nYour credentials could not be authenticated: "Credentials are missing.". You will not be permitted access until your credentials can be verified.\n</FONT>\n</TD></TR>\n<TR><TD>\n<FONT face="Helvetica">\nThis is typically caused by an incorrect username and/or password, but could also be caused by network problems.\n</FONT>\n</TD></TR>\n<TR><TD>\n<FONT face="Helvetica" SIZE=2>\n<BR>\nFor assistance, contact your network support team.\n</FONT>\n</TD></TR>\n</TABLE>\n</blockquote>\n</FONT>\n</BODY></HTML>\n' 

它会打开Firefox,但之后它无法连接到谷歌或任何其他本地站点。 例外情况是driver = webdriver.Firefox()

我用Google搜索,然后按照link进行了搜索。

但不幸的是我仍然得到同样的错误。 我不能以root用户身份运行。我更改了我的代理设置,并为localhost设置了No Proxy元素以及链接中提到的。

我正在使用Python 2.7并安装了selenium 2.31版本。

我也尝试过设置代理。

myProxy = "*********:8080"
proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': myProxy,
    'ftpProxy': myProxy,
    'sslProxy': myProxy,
    'noProxy': 'localhost,127.0.0.1,*.abc' 
    })

driver = webdriver.Firefox(proxy=proxy)

我还尝试将代理设置为系统的代理,即在上面的代码中'proxyType': ProxyType.SYSTEM

但它再次给出了上述异常消息。 有没有我需要设置用户名和密码的地方?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

手动从系统上的所有浏览器中删除代理设置。我有IE,Firefox和谷歌Chrome。 当我删除所有浏览器的代理设置并仅在Firefox上启用代理时,它可以正常运行而不会出现任何错误。我不知道为什么这样工作的确切原因,可能与Windows上的注册表设置有关,我不确定。 完成上述操作后,我运行了基本代码并且运行正常。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com.bh")
assert "Google" in driver.title
driver.close()

我也没有明确设置代理。默认情况下,它已采用系统的代理设置。希望这会有助于其他人面临类似的问题。