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

为什么ChromeDriver崩溃?(Python3 Selenuim Ubuntu)

翟修永
2023-03-14

我想网页搜索。我使用ubuntu 20.04,python 3.8,selenium,ChromeDriver。但是为什么ChromeDriver崩溃了?版本有问题吗?

我尝试过各种Chrome选项,-没有沙盒,-禁用gpu,-禁用dev-shm使用,但没有改变。

  • 密码
# - coding: utf-8 --
import time
import random
import requests
import math
import re
import time
import datetime
from bs4 import BeautifulSoup
from sqlalchemy import create_engine
from string import Template
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

def hoge(url):
    options = ChromeOptions()
    options.add_argument('--headless')
    serv = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=serv, options=options)
    driver.get(url)
  • 环境
Ubuntu 20.04
Python 3.8.10
pip 21.2.3 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
selenium 4.1.0
Google Chrome 97.0.4692.71
ChromeDriver 97.0.4692.71
  • 错误信息
====== WebDriver manager ======
Current google-chrome version is 97.0.4692
Get LATEST chromedriver version for 97.0.4692 google-chrome
Driver [/root/.wdm/drivers/chromedriver/linux64/97.0.4692.71/chromedriver] found in cache
Traceback (most recent call last):
  File "/var/www/hoge.py", line 271, in <module>
    hoge("https://google.com")
  File "/var/www/hoge.py", line 190, in hoge
    driver = webdriver.Chrome(service=serv, options=options)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chromium/webdriver.py", line 93, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 268, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 359, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, 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/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55f08dc53a23 <unknown>
#1 0x55f08d71ee18 <unknown>
#2 0x55f08d7421f1 <unknown>
#3 0x55f08d73d91a <unknown>
#4 0x55f08d77874a <unknown>
#5 0x55f08d772883 <unknown>
#6 0x55f08d7483fa <unknown>
#7 0x55f08d7494c5 <unknown>
#8 0x55f08dc8316d <unknown>
#9 0x55f08dc995bb <unknown>
#10 0x55f08dc84e75 <unknown>
#11 0x55f08dc99e85 <unknown>
#12 0x55f08dc7886f <unknown>
#13 0x55f08dcb4ae8 <unknown>
#14 0x55f08dcb4c68 <unknown>
#15 0x55f08dccfaad <unknown>
#16 0x7efe8ed65609 <unknown>
  • pip列表
Package             Version
------------------- --------------
async-generator     1.10
attrs               21.3.0
beautifulsoup4      4.10.0
certifi             2021.10.8
cffi                1.15.0
charset-normalizer  2.0.9
chromedriver-binary 96.0.4664.45.0
colorama            0.4.4
configparser        5.2.0
crayons             0.4.0
cryptography        36.0.1
greenlet            1.1.2
h11                 0.12.0
idna                3.3
lxml                4.7.1
outcome             1.1.0
pip                 21.2.3
psycopg2-binary     2.9.2
pycparser           2.21
pyOpenSSL           21.0.0
requests            2.26.0
selenium            4.1.0
setuptools          57.4.0
six                 1.16.0
sniffio             1.2.0
sortedcontainers    2.4.0
soupsieve           2.3.1
SQLAlchemy          1.4.29
trio                0.19.0
trio-websocket      0.9.2
urllib3             1.26.7
webdriver-manager   3.5.2
wsproto             1.0.0
  • pip冻结
async-generator==1.10
attrs==21.3.0
beautifulsoup4==4.10.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.9
chromedriver-binary==96.0.4664.45.0
colorama==0.4.4
configparser==5.2.0
crayons==0.4.0
cryptography==36.0.1
greenlet==1.1.2
h11==0.12.0
idna==3.3
lxml==4.7.1
outcome==1.1.0
psycopg2-binary==2.9.2
pycparser==2.21
pyOpenSSL==21.0.0
requests==2.26.0
selenium==4.1.0
six==1.16.0
sniffio==1.2.0
sortedcontainers==2.4.0
soupsieve==2.3.1
SQLAlchemy==1.4.29
trio==0.19.0
trio-websocket==0.9.2
urllib3==1.26.7
webdriver-manager==3.5.2
wsproto==1.0.0

我还应该尝试什么?

共有1个答案

商皓
2023-03-14

也许你应该尝试一些简单的方法,比如:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://google.com")

btn = driver.find_element(By.XPATH, '//*[@id="L2AGLb"]')
btn.click()

这是一个简单的程序,用硒启动铬,进入google.com,点击按钮接受饼干。它适用于你拥有的同版本的铬驱动程序。

 类似资料:
  • 我第一次试着用docker。我需要它使selenium在服务器上运行。所以我可以把这个脚本放到任何一台服务器上,这样就可以毫不费力地工作了。但是突然间它就不起作用了,它就不起作用了。我试着在谷歌上搜索,但什么都没有。现在我在这里寻求帮助。也许我错过了什么,也许我把事情搞砸了,现在我看到了解决办法。解决方案是下载chromedriver,拒绝独立运行selenium。 开始硒 Dockerfile去

  • 我在一个片段中遇到了一个问题,该片段从新的Google Maps API中嵌入了SuportMapFragment。当创建我的片段时,它从方法开始,在中获取一些数据。当这种情况发生时,MapFragment保持在屏幕外,而是显示进度条。 完成后,我向MapView的事件注册。然后我显示片段,这导致地图视图被显示和布局。被触发,动画开始。 多谢!

  • 在我的应用程序中,我已经授予了的权限,并且它正在顺利地检测接收/offhook/idle统计信息。 更新 这是Logcat错误: 04-26 04:55:04.422 140 6-2091/?W/Audio_HW_Generic:没有向哈尔提供足够的数据,预期位置为1097356,只写了1097280 04-26 04:55:04.434 506 5-5065/?d/AndroidRuntime:

  • 我已经签署了一个应用程序与我创建的标志。我已经在我的手机里安装了这个apk,这是可以的,但是当我尝试打开应用程序时,它崩溃了(没有显示任何活动),并且它没有给我看日志的机会(这个对话框没有报告按钮) 问题是我在应用程序上的签名。我已经测试了其他标志和应用程序打开完美。我不能发布任何关于创建标志的信息,但只有我可以说我使用了: 其他字段为空。 主要的问题是这个应用程序是在google play中发布

  • 我有一个列表,可以在两种布局中进行选择,一种是默认布局,另一种是带有适配器的布局。当用户尚未创建任何时,会首先显示默认的UI布局。用户创建并保存后,布局会切换到布局。布局使用“视图类型”切换,在0和1之间切换。 当我使用这两种方法时,布局之间的切换效果很好: 然后我添加了下面的方法供其他使用,应用程序正在崩溃: 我错过了什么? Logcat: 致命的例外:主java。lang.RuntimeExc

  • 问题内容: 当我退出“活动”退出(通过“后退”按钮)时,我的应用程序崩溃。据我所知,这是在Android代码库中发生的,而不是我的,但是我并不完全相信。 这是来自adb的stacktrace: 有人有什么想法/建议吗? 问题答案: 无助,因为没有代码。还在看 造成原因:android.app.Activity.performStop(Activity.java:3575)上的java.lang.N