在我开始之前:我知道有10亿篇关于硒不起作用的帖子,还有各种各样的解决方案需要尝试。我相信我什么都试过了,但如果我错过了什么,请原谅。我的头撞到墙上了,非常感谢你的帮助。
以下是我采取的一些措施:
我下载了chromedriver for selenium(Ubuntu,Python),并使用chmod 755
和chmod 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.)
我真诚地感谢其他人对这个问题的解释。
你需要处理以下几件事:
>
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
你可以在以下网站上找到一些相关的详细讨论:
我正在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