Selenium启动Chrome后不返回,但启动Firefox后返回?

1 投票
1 回答
1783 浏览
提问于 2025-04-17 21:59

我正在尝试用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命令行中),但使用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

1 个回答

0

Chrome浏览器需要一个叫做chromedriver的特殊文件才能运行。想了解chromedriver是什么,可以查看这里

from selenium import webdriver import os chromedriver = "PATH_TO_CHROMEDRIVER" os.environ["webdriver.chrome.driver"] = chromedriver browser = webdriver.Chrome(executable_path=chromedriver) 这段代码应该会启动Chrome浏览器,并显示完成。

撰写回答