升级到版本>89后,Selenium和Python以及使用Chrome驱动程序的错误

mw3dktmi  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(150)

我有下面的配置,它在当前形式下工作得很好。
我可以在v89下使用任何chrome/chromedriver而没有任何问题一旦我通过了v89标记,它就不再工作了,给出下面的错误
任何帮助都将不胜感激,因为我快疯了。
我尝试了不同的方法,比如使用自动webdriver-manager安装程序,但每次尝试都失败了。

Traceback (most recent call last):\n  File \"/opt/program/src/steps/start_browser_step.py\", line 30, in handle\n    browser = self.browser(options, service)\n  File \"/opt/program/src/steps/start_browser_step.py\", line 105, in browser\n    browser = ChromeBrowser(options=options, service=service)\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py\", line 81, in __init__\n    super().__init__(\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py\", line 106, in __init__\n    super().__init__(\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py\", line 288, in __init__\n    self.start_session(capabilities, browser_profile)\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py\", line 381, in start_session\n    response = self.execute(Command.NEW_SESSION, parameters)\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py\", line 444, in execute\n    self.error_handler.check_response(response)\n  File \"/opt/bitnami/python/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py\", line 249, in check_response\n    raise exception_class(message, screen, stacktrace)\nselenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.\n  (chrome not reachable)\n  (The process started from chrome location /opt/program/bin/chrome-linux/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\nStacktrace:\n#0 0x00400084a262 <unknown>\n#1 0x00400083b133 <unknown>\n#2 0x004000545ce1 <unknown>\n#3 0x00400056cf1c <unknown>\n#4 0x004000568c4e <unknown>\n#5 0x0040005ae38d <unknown>\n#6 0x0040005a4d83 <unknown>\n#7 0x004000573552 <unknown>\n#8 0x00400057478c <unknown>\n#9 0x0040007f33f6 <unknown>\n#10 0x004000809858 <unknown>\n#11 0x0040008090ff <unknown>\n#12 0x00400080a015 <unknown>\n#13 0x004000810cd3 <unknown>\n#14 0x00400080a39b <unknown>\n#15 0x0040007e51e7 <unknown>\n#16 0x004000827848 <unknown>\n#17 0x00400082798f <unknown>\n#18 0x004000835256 <unknown>\n#19 0x004002768fa3 start_thread\n#20 0x004002d244cf clone

这是我正在尝试使用的版本,它不起作用。我还尝试了110,100,90…都失败了

ARG CHROME_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1109227%2Fchrome-linux.zip?alt=media"
ARG CHROMEDRIVER_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F1109227%2Fchromedriver_linux64.zip?alt=media"

下面的代码工作得很好。只有当我使用上面的驱动程序时才会发生这个问题。

FROM public.ecr.aws/bitnami/python:3.8.12

ARG CHROME_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F843831%2Fchrome-linux.zip?alt=media"
ARG CHROMEDRIVER_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F843831%2Fchromedriver_linux64.zip?alt=media"
ARG 

RUN apt-get update -y
RUN apt-get install python3-pip -y
RUN apt-get install python3-dev -y
RUN apt-get install gcc g++ -y
RUN pip install --upgrade pip

RUN apt-get update -y
RUN apt-get install -y wget
RUN apt-get install -y unzip
RUN apt-get install -y nginx
RUN apt-get install -y git
RUN apt-get install -y xvfb
RUN apt-get install -y packagekit-gtk3-module
RUN apt-get install -y libx11-xcb1
RUN apt-get install -y libdbus-glib-1-2
RUN apt-get install -y libxt6
RUN apt-get install -y libnss3-dev
RUN apt-get install -y libgbm-dev
RUN apt-get install -y libasound2
RUN apt-get install -y ca-certificates
RUN apt-get install -y vim
RUN apt-get install -y software-properties-common apt-transport-https
RUN apt-get install -y fonts-indic
RUN apt-get install -y fonts-noto
RUN apt-get install -y fonts-noto-cjk

RUN mkdir -p /opt/program
RUN mkdir -p /opt/program/data
RUN mkdir -p /opt/program/bin/tmp

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list

RUN wget $CHROME_URL -O /opt/program/bin/tmp/chrome.zip
RUN unzip /opt/program/bin/tmp/chrome.zip -d /opt/program/bin

RUN wget $CHROMEDRIVER_URL -O /opt/program/bin/tmp/chromedriver.zip
RUN unzip /opt/program/bin/tmp/chromedriver.zip -d /opt/program/bin

ENV PYTHONUNBUFFERED=TRUE
ENV PYTHONDONTWRITEBYTECODE=TRUE
ENV PATH="/opt/program:${PATH}"

COPY . /opt/program
WORKDIR /opt/program

RUN pip install -r requirements.txt

CMD ["python", "-v"]
autopep8==1.5.5
beautifulsoup4==4.10.0
black==20.8b1
boto3==1.17.2
Faker==11.3.0
flake8==3.8.4
html5lib==1.1
ImageHash==4.2.1
importlib-metadata==4.11.3
mergedeep~=1.3.4
mock==4.0.3
moto==1.3.14
numpy==1.22.4
Pillow==9.3.0
pre-commit==2.10.1
pytest==6.2.4
pytest-cov==2.12.0
pytest-env==0.6.2
pytest-pythonpath==0.7.0
python-dotenv==0.15.0
pyYAML==5.4.1
requests==2.25.1
requests-mock==1.9.3
scipy==1.8.1
selenium==4.6.0
webdriver-manager==3.8.5
from selenium.webdriver import Chrome as ChromeBrowser
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.chrome.service import Service as ChromeService

options = ChromeOptions()
options.binary_location = '/opt/program/bin/chrome-linux/chrome'

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/605.1.15 (KHTML, like Gecko) ' \
             'CriOS/85 Version/11.1.1 Safari/605.1.15'
options.add_argument(f'user-agent={user_agent}')
options.add_argument('--single-process')
options.add_argument('--allow-running-insecure-content')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-gpu')
options.add_argument('--hide-scrollbars')
options.add_argument('--window-size=1400,1080')
options.add_argument('--disable-cache')
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--start-maximized')
options.add_argument('--kiosk')

service = ChromeService(executable_path='/opt/program/bin/chromedriver_linux64/chromedriver')

browser = ChromeBrowser(options=options, service=service)
o4hqfura

o4hqfura1#

似乎这整件事发生,因为我有一个M1处理器.出于某种原因,直到v89,上述脚本与我的处理器以及工作.之后,他们不再...但在英特尔处理器,一切都很好.很奇怪,老实说,但...

相关问题