【问题标题】:IE and Chrome not working with Selenium2 PythonIE 和 Chrome 不能与 Selenium Python 一起使用
【发布时间】:2013-07-11 14:15:48
【问题描述】:

我似乎无法通过 Selenium 2 的 Python 库打开 Google Chrome 或 Internet Explorer。我使用的是 Windows 7,64 位。

我已完成以下步骤:

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

每当我输入时:

from selenium import webdriver
driver = webdriver.Ie()

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 启动,但窗口从未出现。

【问题讨论】:

  • 谢谢。我只是尝试将其放入自己的文件夹并更新 PATH,但这仍然没有帮助。

标签: python internet-explorer google-chrome firefox selenium-webdriver


【解决方案1】:

在 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")

【讨论】:

  • 是的,检查您的环境变量 HTTP_PROXY 和 HTTPS_PROXY
【解决方案2】:

我无法用我下载它的路径解决这个问题,但可以通过定义驱动程序的路径来解决这个问题,如下所示:

   driver = webdriver.Chrome('C:\path\to\chromedriver')

   driver = webdriver.Ie('C:\path\to\iedriver')

【讨论】:

  • 为了让事情变得更加混乱,这仅适用于我的 Chrome。即仍然给我一个错误信息...我很困惑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多