【问题标题】:Selenium doesn't return after starting Chrome but returns after starting Firefox?Selenium 在启动 Chrome 后不返回但在启动 Firefox 后返回?
【发布时间】:2014-03-12 18:00:25
【问题描述】:

我正在尝试使用 Selenium 在 Python 中执行以下代码:

def create_browser(first_page=None):
    print "Starting"
    browser = webdriver.Chrome()
    if first_page:
        browser.get(first_page);
    print "Done."
    return browser

browser = create_browser()

当我执行此代码时,Chromium 会启动,但不会打印“完成”语句。但是,如果我将Chrome() 替换为Firefox(),浏览器将启动并打印“完成”。我也尝试在终端中验证这一点。如果我执行以下一系列语句:

from selenium import webdriver
driver = webdriver.Chrome()

当我将Chrome() 替换为Firefox() 时,终端正常返回并显示>>(在python shell 中,但Chromium 不会发生这种情况。谁能告诉这里出了什么问题。非常感谢您的帮助。谢谢!

更新:

我不确定这是否有帮助,但是当我使用webdriver 执行时,会在包含我的代码的目录中生成一个名为chromedriver.log 的文件。内容如下:

[0.000][INFO]:      ChromeDriver 20.0.1133.0 /home/therookie/bin/chromedriver
[1.000][FINE]:      Initializing session with capabilities {
   "browserName": "chrome",
   "chromeOptions": {
      "args": [  ],
      "extensions": [  ]
   },
   "javascriptEnabled": true,
   "platform": "ANY",
   "version": ""
}

[1.001][INFO]:      Launching chrome: /usr/bin/google-chrome --disable-hang-monitor --disable-prompt-on-repost --dom-automation --full-memory-crash-report --no-default-browser-check --no-first-run --ignore-certificate-errors --homepage=about:blank
[11.796][SEVERE]:   Failed to initialize connection

【问题讨论】:

标签: python google-chrome firefox selenium


【解决方案1】:

Chrome 需要一个名为 chromedriver 的特殊文件才能运行。看here看看chromedriver是什么

from selenium import webdriver import os chromedriver = "PATH_TO_CHROMEDRIVER" os.environ["webdriver.chrome.driver"] = chromedriver browser = webdriver.Chrome(executable_path=chromedriver) 这应该会启动 Chrome 并完成打印。

【讨论】:

  • 实际上,如果 chromedriver 安装在路径中的任何位置(例如,您可能已经通过 brew install chromedriver 安装了它),那么 webdriver.Chrome() 会找到它。很高兴知道您的路径中是否有多个版本的 chromedriver,不知何故。
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 2016-10-09
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2015-03-14
  • 1970-01-01
相关资源
最近更新 更多