selenium - Selenium 无法识别 Chrome 二进制文件,Chrome 已崩溃
问题描述
我正在尝试用 chrome 运行 Selenium
但它会产生错误:找不到 Chrome 二进制文件
但它会产生错误:Chrome 已崩溃
机器:Ubuntu 16 & Python 3.4
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = "/usr/local/bin/chromedriver"
options.add_argument("--start-maximized")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'/usr/local/bin/chromedriver')
driver.get('http://google.com/')
输出
Traceback (most recent call last):
File "testdrive.py", line 11, in <module>
driver = webdriver.Chrome(options=options, executable_path=r'/usr/local/bin/chromedriver')
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/local/bin/chromedriver is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
有人能帮我吗?
解决方案
自动下载安装支持当前安装的chrome版本的chromedriver。此安装程序支持 Linux、MacOS 和 Windows 操作系统。
安装
pip install chromedriver-autoinstaller
用法
只需chromedriver_autoinstaller
在要使用的模块中输入 import 即可chromedriver
。
例子
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists
# and if it doesn't exist, download it automatically,
# then add chromedriver to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
推荐阅读
- javascript - 对 addEventListener() 使用 setTimeout
- c++ - 在 C/C++ 中正确链接的一般提示
- javascript - 如何在不改变布局的情况下正确调整 iframe 的大小?
- swiftui - SCNSceneRendererDelegate 中的渲染器函数只通过输入调用,不会自动调用
- c# - 如何尽快释放被占用但对象较大的内存?
- r - 类似于动物园熊猫的滚动平均函数
- python - 更新密码时如何解决用户注销?
- mysql - Mysql json字段-按参数过滤
- r - 如何在R中做一个双循环?
- ios - ios 应用程序仅在从模拟器 xcode 手动启动时才会在启动屏幕后关闭