我似乎无法通过Selenium 2的Python库打开Google Chrome或Internet Explorer。我使用的是Windows 7,64位。
我已完成以下步骤:
每当我输入:
from selenium import webdriver
driver = webdriver.Ie()
OR
from selenium import webdriver
driver = webdriver.Chrome()
进入Python shell,没有弹出浏览器,shell只会冻结几分钟然后输出错误信息。
IE错误消息:
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the IEDriver'
Chrome错误消息:
urllib2.HTTPError: HTTP Error 503: Service Unavailable
它与firefox完美搭配。有趣的是,该过程(IEDriver和ChromeDriver)是根据TaskManager启动的,但窗口永远不会出现。
答案 0 :(得分:7)
在python-selenium中webdriver.Ie
只是执行 IEDriver.exe 并通过webdriver.Remote
连接到它的快捷方式。例如,您可以从命令行启动 IEDriver.exe :
> IEDriverServer.exe
Started InternetExplorerDriver server (64-bit)
2.39.0.0
Listening on port 5555
并使用以下代码替换webdriver.Ie()
:
webdriver.Remote(command_executor='http://127.0.0.1:5555',
desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)`
您将获得相同的结果。
特别是在您的情况下,您很可能有一些系统代理设置强制它通过代理服务器连接到 127.0.0.1 。可能正如您在回答Python: Disable http_proxy in urllib2中所述禁用它时,您可以解决问题:
import selenium
import urllib2
from contextlib import contextmanager
@contextmanager
def no_proxies():
orig_getproxies = urllib2.getproxies
urllib2.getproxies = lambda: {}
yield
urllib2.getproxies = orig_getproxies
with no_proxies():
driver = selenium.webdriver.Ie()
driver.get("http://google.com")
答案 1 :(得分:1)
我无法用我下载的路径解决这个问题,但是已经能够通过定义驱动程序的路径来解决这个问题,如下所示:
driver = webdriver.Chrome('C:\path\to\chromedriver')
或
driver = webdriver.Ie('C:\path\to\iedriver')