ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Python 自动化测试报告:基于 Selenium 与 Edge 浏览器的启动与基础控制

Python 自动化测试报告:基于 Selenium 与 Edge 浏览器的启动与基础控制 本报告围绕 Python 中使用 Selenium 启动 Edge 浏览器的过程展开重点分析driver webdriver.Edge(optionsedge_options)这一语句的运行机制、参数含义、常见问题及优化方法。报告包含完整示例代码、逐行解析、运行环境说明、异常处理方案以及项目亮点可作为自动化测试、网页数据采集、浏览器行为模拟等任务的入门实践报告。二、技术背景Selenium 是一套广泛使用的浏览器自动化测试工具支持 Chrome、Edge、Firefox 等主流浏览器。通过 Selenium程序可以模拟用户打开网页、输入文本、点击按钮、获取页面元素、等待页面加载等操作。Edge 浏览器基于 Chromium 内核因此 Selenium 对 Edge 的支持方式与 Chrome 较为接近。但在实际使用中Edge 需要使用专门的webdriver.Edge驱动而不是webdriver.Chrome。如果驱动版本、浏览器版本或启动参数配置不当程序可能出现浏览器无法启动、窗口闪退、驱动连接失败等问题。因此启动浏览器并不只是简单调用一行代码而是需要正确安装依赖、匹配驱动版本、设置浏览器选项并对可能出现的异常进行处理。三、运行环境准备在运行示例代码前需要确认以下环境条件Python 环境建议使用 Python 3.8 及以上版本。Selenium 对 Python 版本有一定要求较新的 Selenium 版本通常不再支持很旧的 Python。安装 Selenium 库可通过 pip 安装pipinstallselenium安装 Microsoft Edge 浏览器系统中必须已经安装 Edge 浏览器。Selenium 启动浏览器时会调用本地已安装的 Edge 程序。Edge WebDriverSelenium 4 之后通常可以自动管理驱动但仍需保证网络环境允许下载对应驱动。如果自动下载失败也可以手动下载与 Edge 浏览器版本匹配的 WebDriver。确认 Edge 浏览器版本可在 Edge 浏览器地址栏输入edge://version查看当前浏览器版本号便于排查驱动兼容性问题。四、示例代码下面代码演示了如何配置 Edge 浏览器选项并通过webdriver.Edge启动浏览器。fromseleniumimportwebdriverfromselenium.webdriver.edge.optionsimportOptionsasEdgeOptionsfromselenium.webdriver.edge.serviceimportServicefromselenium.common.exceptionsimportSessionNotCreatedException,WebDriverExceptionimporttimeimportosdefcreate_edge_driver(headlessFalse,window_size(1280,800)): 创建并返回一个 Edge 浏览器驱动对象。 参数 headless: 是否无头模式运行默认为 False即显示浏览器窗口。 window_size: 浏览器窗口大小默认为 1280x800。 返回 driver: Edge 浏览器驱动对象。 edge_optionsEdgeOptions()edge_options.add_argument(f--window-size{window_size[0]},{window_size[1]})# 如果启用无头模式则不显示浏览器界面ifheadless:edge_options.add_argument(--headless)# 禁用自动化控制特征降低被部分网站识别为自动化工具的概率edge_options.add_experimental_option(excludeSwitches,[enable-automation])edge_options.add_experimental_option(useAutomationExtension,False)# 设置用户代理使浏览器请求更接近普通用户浏览器edge_options.add_argument(user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0)# 尝试自动管理 Edge 驱动try:driverwebdriver.Edge(optionsedge_options)exceptSessionNotCreatedExceptionase:raiseRuntimeError(fEdge 会话创建失败请检查 Edge 浏览器版本与 WebDriver 是否匹配。错误信息{e})fromeexceptWebDriverExceptionase:raiseRuntimeError(fWebDriver 启动异常请确认已安装 Edge 浏览器及对应驱动。错误信息{e})frome# 设置隐式等待时间避免元素尚未加载就立即操作driver.implicitly_wait(10)# 最大化浏览器窗口driver.maximize_window()returndriverdefmain():driverNonetry:print(正在初始化 Edge 浏览器驱动...)drivercreate_edge_driver(headlessFalse)print(Edge 浏览器已成功启动。)print(f当前浏览器标题{driver.title})print(f当前页面 URL{driver.current_url})# 打开一个示例页面test_urlhttps://www.example.comprint(f正在访问{test_url})driver.get(test_url)# 等待页面加载time.sleep(3)print(f页面标题{driver.title})print(f页面 URL{driver.current_url})# 获取页面源码长度用于验证是否成功加载page_sourcedriver.page_sourceprint(f页面源码长度{len(page_source)}字符)exceptExceptionase:print(f程序运行出现异常{e})finally:ifdriverisnotNone:try:driver.quit()print(浏览器已关闭驱动资源已释放。)exceptExceptionasclose_error:print(f关闭浏览器时出现异常{close_error})if__name____main__:main()五、代码解析程序首先从 Selenium 中导入了必要的模块。webdriver用于创建浏览器驱动对象EdgeOptions用于配置 Edge 浏览器的启动参数Service可用于指定 WebDriver 路径SessionNotCreatedException和WebDriverException用于捕获驱动启动过程中可能出现的错误。create_edge_driver函数负责创建浏览器驱动。它先创建EdgeOptions对象然后通过add_argument设置浏览器窗口大小。窗口大小可以根据需要调整例如设置为1920, 1080以获得更大显示区域。当headless参数为True时浏览器会以无头模式运行。无头模式下不会弹出可见窗口适合在服务器或后台任务中使用。但调试阶段建议先关闭无头模式方便观察浏览器行为。代码中还通过excludeSwitches和useAutomationExtension对自动化特征进行一定处理。需要注意的是这种设置并不能完全绕过所有网站的反自动化检测只能减少部分明显特征。如果目标网站有较强的反爬机制还需要结合等待策略、请求头设置、行为模拟等方式进一步处理。创建驱动时程序使用driverwebdriver.Edge(optionsedge_options)这行代码会根据前面配置的edge_options启动一个 Edge 浏览器实例。此时系统会弹出 Edge 浏览器窗口并由 Selenium 接管后续操作。如果驱动与浏览器版本不匹配或者 Edge 未正确安装就可能抛出异常。因此代码使用try/except对常见错误进行捕获并转换为更明确的提示信息。driver.implicitly_wait(10)设置了隐式等待时间。它的作用是当程序查找页面元素时如果元素暂时没有出现驱动程序会在指定时间内持续等待而不是立即报错。这样可以提高脚本稳定性但隐式等待不能替代所有显式等待场景。driver.maximize_window()会将浏览器窗口最大化便于后续定位元素或截图。若不需要最大化也可以保留前面设置的固定窗口大小。main函数是程序入口。它先调用create_edge_driver创建驱动然后访问示例页面输出页面标题、URL 和页面源码长度最后在finally块中关闭浏览器。使用finally非常重要因为即使程序中途出错也应尽量关闭浏览器避免残留进程占用系统资源。六、运行结果说明程序成功运行后控制台会依次输出浏览器初始化提示、页面标题、URL 以及页面源码长度。同时屏幕上会弹出 Edge 浏览器窗口并自动打开指定网页。如果 Edge 浏览器未安装、驱动版本不匹配或网络环境异常程序会输出错误提示例如“Edge 会话创建失败”或“WebDriver 启动异常”。此时应检查浏览器版本、Selenium 版本、WebDriver 版本以及系统环境变量。七、常见问题与解决方法浏览器无法启动可能原因包括未安装 Edge 浏览器、Selenium 未安装、Python 环境配置错误等。应确认 Edge 浏览器可以正常打开并通过pip show selenium检查 Selenium 是否安装成功。驱动版本不匹配Edge WebDriver 需要与 Edge 浏览器版本兼容。若出现会话创建失败可尝试更新 Edge 浏览器或更新 Selenium使驱动能够自动匹配。窗口闪退如果程序执行结束后立即关闭浏览器可能看不到窗口。可以在关键操作后适当增加等待时间或使用断点调试观察页面状态。元素找不到页面加载需要时间如果立即查找元素可能尚未渲染完成。建议使用隐式等待或显式等待例如等待某个元素出现后再继续操作。被网站识别为自动化程序Selenium 启动的浏览器可能带有自动化特征。可以通过修改实验性选项、设置用户代理、增加随机等待时间等方式降低识别概率但不能保证对所有网站有效。八、项目亮点结构清晰代码将浏览器创建逻辑封装为独立函数主流程只负责调用和异常处理便于复用和维护。参数可配置支持无头模式、窗口大小等参数配置可以根据调试需求或部署环境灵活调整。异常处理完善对驱动创建失败、浏览器关闭异常等情况进行了捕获避免程序直接崩溃并输出可读性较强的错误提示。资源释放安全使用finally确保浏览器驱动最终会被释放减少残留进程问题。可扩展性强在此基础上可以继续扩展页面点击、表单填写、截图保存、数据提取、日志记录等功能适合作为自动化测试项目的基础模板。九、总结通过driver webdriver.Edge(optionsedge_options)启动 Edge 浏览器是 Selenium 自动化测试中的基础操作。看似简单的一行代码背后涉及浏览器驱动匹配、启动参数配置、等待机制设置和异常处理等多个环节。合理封装驱动创建过程可以有效提高脚本稳定性也为后续网页操作、数据采集和自动化测试任务打下良好基础。实际项目中应根据目标网站特性、运行环境和测试需求进一步完善等待策略、日志记录和错误恢复机制。
返回列表