IE和Chrome无法使用Selenium2 Python

Wil*_*Hua 4 python firefox internet-explorer google-chrome selenium-webdriver

我似乎无法通过Selenium 2的Python库打开谷歌浏览器或Internet Explorer.我使用的是Windows 7,64位.

我已完成以下步骤:

  • 安装python - 2.7.5
  • 安装硒2.33
  • 在环境变量 - 路径中包含C:\ Python27&C:\ Python27\Scripts
  • 下载32位(我正在运行64位但我找不到32位版本)windows Chrome驱动程序支持v27-30(我28岁)并将其放入C:\ Python27\Scripts
  • 下载支持IE9的64位IE驱动程序(我将IE10降级为IE9).我将驱动程序放入C:\ Python27\Scripts

每当我打字:

from selenium import webdriver
driver = webdriver.Ie()
Run Code Online (Sandbox Code Playgroud)

要么

from selenium import webdriver
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)

进入Python shell,没有浏览器弹出,shell只会冻结几分钟然后输出错误信息.

IE错误消息:

selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the IEDriver'
Run Code Online (Sandbox Code Playgroud)

Chrome错误消息:

urllib2.HTTPError: HTTP Error 503: Service Unavailable
Run Code Online (Sandbox Code Playgroud)

它与firefox完美搭配.有趣的是,该过程(IEDriver和ChromeDriver)是根据TaskManager启动的,但窗口永远不会出现.

Vya*_*ets 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
Run Code Online (Sandbox Code Playgroud)

并替换webdriver.Ie()为以下代码:

webdriver.Remote(command_executor='http://127.0.0.1:5555',
                 desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)`
Run Code Online (Sandbox Code Playgroud)

你会得到相同的结果.

特别是在您的情况下,您很可能有一些系统代理设置强制它通过代理服务器连接到127.0.0.1.可能正如您在回答Python中所述禁用它:在urllib2中禁用http_proxy,您可以解决问题:

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")
Run Code Online (Sandbox Code Playgroud)