[英]Selenium Remote Web Driver: How do I determine which IEDriverServer.exe (32-bit or 64-bit) is being used?
[英]How do I determine which MS Edge Driver is compatible with my OS Version to enable web automation with Selenium for Python?
一段时间以来,我一直在使用 Selenium 和边缘驱动程序。 我一直在通过指定executable_path=
参数来实例化我的 Edge Driver,没有任何问题。 但是,我最近将我的 web 自动化项目切换为使用webdriver_manager
,即webdriver_manager.microsoft import EdgeChromiumDriverManager
。 现在,当我命令驱动程序导航到任何网页时 - 它会打开一秒钟,然后立即关闭。 我正在进行的当前故障排除步骤是确保我正在使用的 Edge 驱动程序(通过使用webdriver_manager
模块下载的驱动程序)与我当前的操作系统版本兼容,但现在我很难过。 我不知道如何找到与我当前的操作系统版本兼容/正确的 MS Edge 驱动程序 - 在比较两者时我看不到任何模式,例如:
我目前的操作系统:
webdriver_manager 下载的webdriver_manager
:
这是所有 MS Edge 驱动程序的链接:
https://msedgewebdriverstorage.z22.web.core.windows.net/
那么,如何找到适合我的操作系统的 Edge 驱动程序? 当我查看这两个数字时:操作系统版本 - 22000.795 和 Edge webdriver 版本 - 103.0.1264.77; 我看不到确定哪个驱动程序兼容的模式或方法。 也许,我不正确地使用了webdriver_manager
模块? 我知道我可以使用可执行路径,但我的印象是使用webriver_manager
自动为您安装新版本,因此您将来不必将脚本更新为新的边缘驱动程序。
对于其他上下文,这是我的代码(仅以 Facebook 的域为例):
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Edge(service = EdgeService(EdgeChromiumDriverManager().install()))
driver.get('https://facebook.com')
SeleniumBase驱动程序管理器与 Edge 配合得很好:
from seleniumbase import get_driver
driver = get_driver("edge", headless=False)
driver.get("https://facebook.com")
import time; time.sleep(1)
driver.quit()
(这是另一个使用原始驱动程序管理器的示例: raw_browser_launcher.py )
或者,您可以使用更简单的格式和自动设置和拆卸,但是您需要使用pytest
运行测试并添加--edge
作为使用 Edge 的命令行选项:
from seleniumbase import BaseCase
class MyTestClass(BaseCase):
def test_facebook(self):
self.open("https://facebook.com")
self.sleep(1)
pytest test_facebook.py --edge
========================= test session starts ==========================
platform darwin -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
rootdir: /Users/michael/github/SeleniumBase/examples, configfile: pytest.ini
plugins: html-2.0.1, xdist-2.5.0, forked-1.4.0, rerunfailures-10.2, ordering-0.6, cov-3.0.0, metadata-2.0.2, seleniumbase-3.5.11
collected 1 item
test_facebook.py .
========================== 1 passed in 4.40s ===========================
它现在正在工作(即,在我原来的问题中使用相同的代码示例,MS Edge window 现在按命令打开并保持打开状态)。 我找到了有关 Edge webdriver 安装/配置的 MS Docs
https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=c-sharp
这是我遵循的步骤:
第一步是确保您的 Edge webdriver ("msedgedriver.exe") 版本与您的 Edge浏览器版本匹配(我读过一篇技术博客说我的操作系统构建版本需要与我的 "msedgedriver.exe" 版本匹配 - 认为这可能是错误的现在?)
我在设置中导航到关于 Microsoft Edge :edge://settings/help
它显示了我当前的 MS Edge 版本 - 它被提示更新 Edge - 所以我做到了。 更新后检查,我的版本是: 104.0.1293.47
webdriver_manager
下载不兼容的msedgedriver.exe
的原因,我尝试再次运行我的脚本(与我在原始问题中发布的完全相同) 它起作用了——我马上检查了msedgedriver.exe
版本,发现webdriver_manager
下载了一个新版本:104.0.1293——它与我当前的 Edge 浏览器版本相匹配。
所以,我不能 100% 确定webdriver_manager
未能下载正确版本(以匹配我的浏览器)的原因是什么 - 但在我更新我的 MS Edge 浏览器之前,没有安装新的驱动程序。 然后在更新并运行脚本后,安装了正确的驱动程序,它现在工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.