Selenium 4 添加二进制路径

Selenium 4 add Binary path

早上好,我用 selenium 做了一些网页抓取,直到昨天一切正常,现在我得到这个错误,我知道这是由于更新二进制文件,但因为我想分享程序,我想二进制文件位于我创建的文件夹中,以便它可以与打开程序的任何人一起使用。 这是代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service
from selenium.webdriver.support.ui import WebDriverWait


# options
options = Options()
options.use_chromium = True
options.add_argument("--headless")
options.add_argument("disable-gpu")
options.add_argument('--allow-running-insecure-content')
options.add_argument('--ignore-certificate-errors')
options.add_experimental_option('excludeSwitches', ['enable-logging'])


# Selenium driver path
s=Service("./Monatseinteilung/driver/msedgedriver.exe")

driver = webdriver.Edge(service=s, options=options)

这是错误: selenium.common.exceptions.SessionNotCreatedException:消息:未创建会话:此版本的 MSEdgeDriver 仅支持 MSEdge 版本 100 当前浏览器版本为 102.0.1245.30,二进制路径为 C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

您必须更改 msedgedriver.exe 驱动程序以匹配您在计算机 (102) 上安装的 MS Edge 版本。您可以从 here 下载它。替换您的 msedgedriver.exe 并且此脚本应该开始工作。每次 MS Edge 更新时,您都必须这样做。

由于您正在使用 Python 并且您希望共享该程序,因此这可能不是很方便。因此,您可以尝试 selenium_driver_updater, or webdriver_auto_update 等库,尽管 webdriver_auto_update 似乎只支持 Chrome。之后,您可以在每次 运行 您的脚本

时检查可用的最新驱动程序

对于selenium_driver_updater

filename = DriverUpdater.install(path=base_dir, driver_name=DriverUpdater.chromedriver, upgrade=True, check_driver_is_up_to_date=True, old_return=False)
driver = webdriver.Chrome(filename)

对于webdriver_auto_update

check_driver('folder/path/of/your/chromedriver')