selenium+msedgedriver+edge浏览器安装驱动的坑

这篇博客介绍了在使用Selenium3和Python3.7与Edge89.0.774.68浏览器版本时遇到的'Unknownerror'异常。作者提供了常规的解决方案,如检查驱动版本和安装位置,并特别指出可能需要将驱动命名为'MicrosoftWebDriver.exe'。如果你已尝试常见方法仍无法解决,这个提示可能对你有所帮助。
部署运行你感兴趣的模型镜像

我使用selenium3+python3.7+edge 89.0.774.68时,环境配置正确,还是无法运行.

报错如下:selenium.common.exceptions.WebDriverException: Message: Unknown error

解决方法:

1.确定驱动版本正确

2.确定驱动安装位置正确

(上面的方法一般都能搜到)

3.如果上面都不能解决,尝试该驱动名称为:MicrosoftWebDriver.exe(真是个坑錒)

参考链接:https://blog.youkuaiyun.com/jerrism/article/details/107628920?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161776291916780271586626%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161776291916780271586626&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-6-107628920.pc_search_result_hbase_insert&utm_term=selenium+edge

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,我现在需要帮用户解决如何用PythonSelenium控制已经打开的Edge浏览器进行自动化操作的问题。首先,我得回忆一下用户提供的引用内容,特别是引用[2]和[3]可能相关。 用户提到他们想控制已经打开的浏览器实例,而不是重新启动一个新窗口。根据引用[2],Selenium可以通过连接调试端口来控制已打开的Chrome或Edge浏览器。这里的关键步骤应该是设置Edge的调试端口,并在代码中连接到该端口。 首先,我需要确定如何启动Edge浏览器时启用调试模式。对于Chrome,通常使用--remote-debugging-port=端口号,Edge应该类似,因为它是基于Chromium的。所以用户需要先以指定端口启动Edge,比如--remote-debugging-port=9222。这样浏览器实例会监听该端口,允许Selenium通过WebDriver连接。 接下来,在Python代码中,用户需要导入Options类,并配置debuggerAddress指向本地地址和端口。引用[2]中的示例是用于Chrome的,但Edge的配置应该类似,只是可能需要使用EdgeOptions而不是ChromeOptions。不过根据引用[3],用户之前使用过webdriver.EdgeOptions(),所以这里应该同样适用。 然后实例化浏览器对象时,传递这些选项。可能需要指定Edge驱动路径,但根据引用[1],用户可能已经正确设置了executable_path,或者可以依赖系统路径中的驱动。需要注意的是,Edge驱动msedgedriver,需要确保版本与浏览器匹配。 另外,引用[3]提到了如何设置下载路径和防止浏览器关闭,用户可能也需要这些选项,但当前问题主要是连接已有实例,所以可能需要先处理调试端口的设置。 可能的步骤是: 1. 启动Edge时添加调试参数。 2. 编写Python代码使用EdgeOptions配置debuggerAddress。 3. 实例化webdriver.Edge并传入选项。 4. 执行自动化操作。 不过,用户可能会遇到问题,比如如何正确启动浏览器。需要详细说明启动命令,例如在Windows的命令行中输入路径和参数。例如:"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --user-data-dir=临时用户数据目录。 另外,用户可能不知道如何找到Edge安装路径,需要给出示例路径,并提醒用户根据实际情况调整。同时,用户数据目录可能需要指定一个临时路径,避免影响现有配置文件。 然后,在代码中,用户需要从selenium导入webdriver和EdgeOptions,设置debuggerAddress为127.0.0.1:9222,并创建driver实例。代码部分可以参考引用[2]中的Chrome例子,但改为Edge的配置。 此外,需要注意版本兼容性,确保Selenium库、Edge浏览器msedgedriver的版本兼容。如果出现连接问题,可能需要检查端口是否正确,或者是否有防火墙阻止连接。 最后,用户可能想了解如何确保浏览器不会在脚本结束后关闭,这时候可以引用[3]中的detach选项,将options.add_experimental_option('detach', True)添加到配置中,这样浏览器窗口会保持打开。 总结步骤: 1. 启动Edge时开启调试端口。 2. 配置SeleniumEdgeOptions连接到该端口。 3. 实例化driver并执行操作。 4. 处理可能的问题,如端口占用、驱动版本等。</think>要控制已打开的Microsoft Edge浏览器实例执行自动化任务,需通过Selenium连接其调试端口,具体步骤如下: ### 步骤1:启动Edge浏览器并开启调试模式 在终端中运行以下命令(路径需根据实际安装位置调整): ```bash "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --user-data-dir=C:\Temp\EdgeProfile ``` - `--remote-debugging-port=9222`:设置调试端口为9222[^2] - `--user-data-dir`:指定临时用户目录以避免覆盖默认配置 ### 步骤2:编写Python代码连接已打开的浏览器 ```python from selenium import webdriver from selenium.webdriver.edge.options import Options # 配置调试端口 edge_options = Options() edge_options.add_experimental_option('debuggerAddress', '127.0.0.1:9222') # 实例化浏览器对象 driver = webdriver.Edge(options=edge_options) # 执行自动化操作 driver.get('https://www.baidu.com') print(driver.title) # 后续操作(如元素定位、表单填写等) # driver.find_element('id','kw').send_keys('test') # 关闭时保留浏览器窗口(可选) driver.close() # 仅关闭当前标签页 # driver.quit() # 完全退出浏览器 ``` > 注:需确保`msedgedriver.exe`在系统PATH中或通过`executable_path`参数指定路径[^1] ### 常见问题处理 | 问题现象 | 解决方案 | |------------------|--------------------------------------------------------------------------| | 无法建立连接 | 检查端口号是否一致,确认浏览器启动参数正确 | | 浏览器自动关闭 | 添加`options.add_experimental_option('detach', True)`[^3] | | 驱动版本不匹配 | 从[Microsoft Edge Driver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)下载对应版本驱动 |
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值