当前位置: 首页 > 知识库问答 >
问题:

chromedriver不再运行,因此chromedriver假设Chrome通过Python使用Selenium时出错

贾兴学
2023-03-14

在我开始之前:我知道有10亿篇关于硒不起作用的帖子,还有各种各样的解决方案需要尝试。我相信我什么都试过了,但如果我错过了什么,请原谅。我的头撞到墙上了,非常感谢你的帮助。

以下是我采取的一些措施:

我下载了chromedriver for selenium(Ubuntu,Python),并使用chmod 755chmod 777使驱动程序可执行。之后,我用启动了chromedriver/chromedriver

我尝试了各种Selenium选项,包括手动添加chromedriver运行的端口

from selenium import webdriver

options = webdriver.ChromeOptions()
options.binary_location = "/home/myname/projects/myproject/chromedriver"
options.add_argument("--remote-debugging-port=9515")
chrome_driver_binary = '/home/myname/projects/myproject/chromedriver'
driver = webdriver.Chrome(chrome_driver_binary, options = options)
driver.get('http://www.ubuntu.com/')

我尝试过其他帖子中建议的选项,比如:

options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--disable-setuid-sandbox")

我已经确保我使用的chromedriver与我的Chrome版本兼容。

似乎没有什么工作。我一直得到这个错误:

WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (chrome not reachable)
  (The process started from chrome location /home/myname/projects/myproject/chromedriver is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

我真诚地感谢其他人对这个问题的解释。

共有1个答案

刘嘉木
2023-03-14

你需要处理以下几件事:

>

  • options.binary_location:指的是google-chrome二进制位置,如果GoogleChrome没有安装在默认位置,则使用该位置。请参阅:WebDriverExctive:未知错误:无法找到旧版本的GoogleChrome在Python中使用Selenium的Chrome二进制错误

    ——远程调试端口:如果不是远程调试,可以安全地删除此参数。

    chrome\u driver\u binary:指系统中chrome驱动程序的绝对位置。

    webdriver。Chrome(Chrome_driver_binary,options=options):此外,您可能需要添加密钥可执行路径,如下所示:

    chrome_driver_binary = '/home/myname/projects/myproject/chromedriver'
    driver = webdriver.Chrome(executable_path=chrome_driver_binary, options = options)
    driver.get('http://www.ubuntu.com/')
    

    --无沙盒--无头--禁用开发shm用法--禁用setuid沙盒,等等都是可选设置,您可能不需要启动它们。

    启动Selenium驱动的ChromeDriver启动的google chrome浏览上下文的最小代码块可以是:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    driver = webdriver.Chrome(executable_path='/home/myname/projects/myproject/chromedriver', options=options)
    driver.get("http://www.ubuntu.com/")
    

    Chrome在启动期间崩溃的一个常见原因是在Linux上以root用户(管理员)身份运行Chrome。虽然在创建WebDriver会话时,可以通过传递--无沙盒标志来解决这个问题,但这种配置不受支持,并且非常不推荐。您需要将环境配置为以普通用户身份运行Chrome

    你可以在以下网站上找到一些相关的详细讨论:

    • 如何通过Selenium配置ChromeDriver以无头模式启动Chrome浏览器

  •  类似资料:
    • 我正在ubuntu服务器上运行一个jupyter笔记本。我正在尝试使用chrome驱动程序运行下面的selenium代码。我收到下面的错误,但如果我在Ubuntu终端中运行下面的代码行,它会返回下面的输出。有人知道可能是什么问题吗?我对ubuntu还是很陌生的。 Ubuntu代码: 输出: jupyter笔记本代码: 错误: 更新: 更新: Ubuntu 代码: 输出: 错误: 更新: 出于某种原

    • 问题内容: 我在Windows 7,硒,chromedriver版本84(最新)上使用python 3来自动运行chrome浏览器。 我正在使用此脚本: 而且我总是在运行时收到此错误。 我的ChromeDriver正在运行。我也使用了其他版本的chromedriver,但是我无法导航到网站! 问题答案: 您的ChromeDriver版本和已安装的Chrome版本需要匹配。您使用的是ChromeDr

    • 问题内容: 我下载了ChromeDriver,默认情况下,浏览器语言为英语,我需要将其更改为西班牙语,但我一直无法使用。 问题答案: 您可以通过添加Chrome的命令行开关 “ –lang”来实现。 基本上,所有你需要开始与ChromeOption说法,见API的详细信息。 以下是有关如何使用Selenium以西班牙语启动Chrome的C#代码的工作示例。 Java代码应该几乎相同(未经测试)。请

    • 我写了这样的代码,但是这段代码没有运行chromedriver,我已经添加了文件(chromedriver.exe)和这个路径(\chromedrive\chromedriver.exe)。 . . 错误消息是: JAVAlang.Exception初始化错误 原因:java。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属

    • 问题内容: 最近,我更换了计算机,从那时起,我无法使用selenium启动铬。我也尝试过Firefox,但浏览器实例无法启动。 我收到以下错误: 编辑:尝试@ b0sss解决方案后,我得到以下错误。 问题答案: 尝试在此处下载并使用此最新的chrome驱动程序版本。 https://sites.google.com/a/chromium.org/chromedriver/downloads 编辑:

    • 问题内容: 最近,我更换了计算机,从那时起,我无法使用selenium启动铬。我也尝试过Firefox,但浏览器实例无法启动。 我收到以下错误: 我安装了最新的Chrome版本和chromedriver 编辑:尝试@ b0sss解决方案后,我得到以下错误。 问题答案: 尝试在此处下载并使用此最新的chrome驱动程序版本。 https://sites.google.com/a/chromium.o