如何正确启动Selenium中的Chrome

时间:2017-11-08 04:27:56

标签: python google-chrome selenium

我无法在Selenium中启动Chrome。

driver=webdriver.Chrome()

追踪(最近一次呼叫最后一次):

  File "<stdin>", line 1, in <module>

  File "/usr/anaconda/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 67, in __init__
    desired_capabilities=desired_capabilities)

  File "/usr/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 87, in __init__
    self.start_session(desired_capabilities, browser_profile)

  File "/usr/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 141, in start_session
    'desiredCapabilities': desired_capabilities,
  File "/usr/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute
    self.error_handler.check_response(response)

  File "/usr/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 181, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 3.19.8-100.fc20.x86_64 x86_64)

我使用“chromedriver_linux64.zip 2017-10-03 21:09:52 3.90MB”来自 url

4 个答案:

答案 0 :(得分:5)

您正在使用当前最新的chromedriver 2.33Google Chrome 38.0.2125.104

release notes开始,对此版本的支持是:

----------ChromeDriver v2.33 (2017-10-03)----------
Supports Chrome v60-62

确保您使用的是最新稳定版的硒。

此外,从Help WebDriver find the downloaded ChromeDriver executable开始,您应该执行其中一项

  1. 在您的PATH环境变量中包含ChromeDriver位置
  2. (仅限Python)在实例化webdriver.Chrome时包含ChromeDriver的路径(参见下面的示例)

答案 1 :(得分:1)

错误说明了一切:

File "<stdin>", line 1, in <module>

似乎错误发生在第一行,如:

driver=webdriver.Chrome()

这是因为除非您导入webdriver,否则此代码块中的driver对象无法正确启动/处理WebBrowser的实例,即 {{1} }

解决方案:

使用 Chrome Browser Selenium 3.x 时,您需要ChromeDriver 2.33.x Chrome Browser v60-62绑定,而且必须执行以下操作:

  • this link下载Python 3.x二进制文件。
  • 导入必要的模块
  • 提供系统中chromedriver二进制文件的绝对路径。
  • 以下是最小代码:
chromedriver
    //The Linux Example
    from selenium import webdriver
    driver = webdriver.Chrome(executable_path=r'/usr/bin/chromedriver')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    driver.quit()

更新:

在您看到 //The Windows Example from selenium import webdriver driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get('https://www.google.co.in') print("Page Title is : %s" %driver.title) driver.quit() 的单独说明中执行以下附加步骤:

  • 通过 WebDriverException: Message: unknown error: Chrome failed to start: crashed 从您的系统中卸载 Google Chrome
  • 运行 Revo Uninstaller 以清除所有不需要的 CCleaner 杂务。
  • 选择 OS
  • 安装 system Reboot
  • 的最新官方版本
  • 执行 Google Chrome

答案 2 :(得分:1)

如果您要使用旧版Chrome,则需要将chromedriver的版本与之匹配。在您的情况下,您使用的是Chrome 38,最后由ChromeDriver 2.13正式支持,您可以找到here

如果您的用户使用的是较新版本的Chrome,我建议您更新发行版并安装Chrome以匹配它们。

答案 3 :(得分:0)

导入selenium和chrome.option让chrom以无头模式运行

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

如果您在linux上以root用户身份使用chrome或chromiun,则应添加&#34; - no-sandbox&#34;选项并设置窗口大小以避免某些项目未显示,因为窗口尺寸太小

chrome_options = Options()
chrome_options.add_argument("--headless") # headless mode
chrome_options.add_argument("--no-sandbox") # run as root user should add --no-sandbox option
chrome_options.add_argument("--window-size=1920x1080")

您可以从http://chromedriver.storage.googleapis.com下载最新版本为2.38

的Chrome驱动程序
chrome_driver = "path to chromedriver"
# start the driver 
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
driver.get("https://www.google.com")