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

274 天前
 NonClockworkChen
860 次点击
所在节点    问与答
8 条回复
gchuyun
274 天前
docker
WildCat
274 天前
Use plauwright
sardina
274 天前
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
274 天前
为啥不更新 chromedriver 呢?还不用保留两份不同版本的 Chrome
NonClockworkChen
274 天前
@yaleyu 谢谢原来 b 站教程给的不是官方下载地址,官方有 115 版本的
zmQAQ
274 天前
@WildCat Playwright
yaleyu
273 天前
@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
273 天前
@yaleyu 感谢感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/963507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX