V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NonClockworkChen
V2EX  ›  问与答

mac 上要用 selenium,但是 driver 只有老版本,只能又装了一个老版本的 chrome,怎么让正常使用的 chrome 保持更新,老版本的 chrome 不更新?

  •  
  •   NonClockworkChen · 2023-08-08 19:50:37 +08:00 · 1098 次点击
    这是一个创建于 471 天前的主题,其中的信息可能已经有所发展或是发生改变。
    8 条回复    2023-08-10 10:23:15 +08:00
    gchuyun
        1
    gchuyun  
       2023-08-08 22:27:01 +08:00 via iPhone
    docker
    WildCat
        2
    WildCat  
       2023-08-08 22:36:22 +08:00 via iPhone
    Use plauwright
    sardina
        3
    sardina  
       2023-08-08 23:11:18 +08:00 via iPhone
    FROM alpine:latest
    RUN apk upgrade --no-cache --available \
    && apk add --no-cache \
    chromium-swiftshader \
    ttf-freefont \
    font-noto-emoji \
    gcompat \
    && apk add --no-cache \
    --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing \
    font-wqy-zenhei

    COPY local.conf /etc/fonts/local.conf


    ENV CHROME_BIN=/usr/bin/chromium
    yaleyu
        4
    yaleyu  
       2023-08-09 09:24:52 +08:00   ❤️ 1
    为啥不更新 chromedriver 呢?还不用保留两份不同版本的 Chrome
    NonClockworkChen
        5
    NonClockworkChen  
    OP
       2023-08-09 10:06:57 +08:00
    @yaleyu 谢谢原来 b 站教程给的不是官方下载地址,官方有 115 版本的
    zmQAQ
        6
    zmQAQ  
       2023-08-09 10:54:58 +08:00
    @WildCat Playwright
    yaleyu
        7
    yaleyu  
       2023-08-09 21:44:31 +08:00   ❤️ 1
    @NonClockworkChen 115 开始,官方版本在这里 https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json ,手动下载和 Chrome 一致的版本,或者安装 pip install webdriver_manager 4.0 后可以通过下面脚本自动和 Chrome 版本保持一致

    import os
    import sys
    from webdriver_manager.core.utils import read_version_from_cmd
    from webdriver_manager.core.os_manager import PATTERN
    from webdriver_manager.chrome import ChromeDriverManager


    if sys.platform == 'linux':
    chrome_path = '/usr/bin/google-chrome'
    elif sys.platform == 'darwin':
    chrome_path = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'

    ver = read_version_from_cmd(f'"{chrome_path}" --version', PATTERN['google-chrome']).split('.')[0]

    if sys.platform == 'linux':
    driver_path = f'{os.environ["HOME"]}/.wdm/drivers/chromedriver/linux64/{ver}/chromedriver-linux64/chromedriver'
    elif sys.platform == 'darwin':
    driver_path = f'{os.environ["HOME"]}/.wdm/drivers/chromedriver/mac64/{ver}/chromedriver-mac-x64/chromedriver'

    if not os.path.exists(driver_path):
    ChromeDriverManager(ver).install()
    NonClockworkChen
        8
    NonClockworkChen  
    OP
       2023-08-10 10:23:15 +08:00
    @yaleyu 感谢感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1188 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:21 · PVG 02:21 · LAX 10:21 · JFK 13:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.