加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 公告

Selenium Manager详解

时间:2024-11-13 13:39:58  来源:http://www.baidu.com/  作者:亲卫队请问

Selenium自诞生以来,已经走过了近二十年的历程,其自2004年的问世便在Web自动化测试工具领域中占据了举足轻重的地位。作为一个开源且功能全面的工具,Selenium长期占据Web自动化测试领域的领头羊位置,其核心组件Webdriver更是被确立为W3C的通行标准。如今,Selenium已成为web自动化测试的事实标准。

随着版本的迭代,Selenium目前已经进化到了V4.24版本。尽管网上仍广泛流传着关于V3版本的使用方法和资料,但Selenium 4是一个具有重大更新的版本,其几个核心组件都经历了深度的重构。

具体说来,WebDriver在Selenium 4中从原先的Json Wire Protocol切换到了W3C的标准定义。Selenium IDE完成了全面的重构与功能优化,而Selenium Grid也经历了重构,支持更灵活的云服务架构。Selenium 4还引入了一个关键工具——Selenium Manager,虽然这一工具在V4.6才正式登场,至V4.12其功能才基本完备,但它的出现为Selenium的使用带来了极大的便利。

要深入了解Selenium Manager,我们首先需要明白Selenium的工作原理。根据官网提供的工作架构图,Selenium通过webdriver协议驱动不同类型的浏览器(如Chrome、Firefox、IE、Edge、Safari等)来完成指定的动作,从而实现自动化执行的目的。在这个过程中,与浏览器对应的浏览器Driver驱动起着关键作用。例如,Chrome有ChromeDriver,FireFox有GecoDriver等。Selenium本身则是基于WebDriver协议与浏览器Driver进行交互。

这种工作原理背后存在一个显著的问题:浏览器的版本更新频繁,而浏览器驱动版本必须与浏览器版本相匹配。不匹配的情况可能导致预期外的异常。在使用Selenium库进行编码之前,确保浏览器驱动与浏览器版本的匹配是非常重要的。但这一过程通常较为复杂,需要安装对应版本的浏览器,找到相应版本的驱动,并将相关路径配置给Selenium。

针对这一问题,Chrome采取了一种应对策略。Chrome Driver的发布策略已经调整,确保driver与Chrome for Testing版本的同步发布。特别的是,Chrome for Testing版本不会进行自动更新,这样就为自动化测试提供了一个稳定的浏览器版本环境,从而方便了驱动与浏览器的版本匹配问题。这种策略的实施大大简化了自动化测试环境的部署流程。

Selenium 4带来了诸多变化和优化,其中对驱动问题的应对策略更是解决了长期困扰自动化测试人员的难题。随着技术的不断进步和浏览器的持续更新,Selenium将继续发挥其在Web自动化测试领域的领导地位。 Selenium应对驱动匹配问题的解决方案

浏览器驱动匹配问题一直是自动化测试中的一大难题,但Selenium官方提供的解决方案——Selenium Manager,为我们解决了这一难题。Selenium Manager是Selenium库中的一个可执行程序,无需额外安装即可使用。

假设我们使用Selenium V4执行一个简单的自动化测试脚本,如在百度上搜索“城下秋草 测试”。

代码示例如下:

```python

from selenium import webdriver

def test_baidu_search():

option = webdriver.ChromeOptions()

option.browser_version = '117'

driver = webdriver.Chrome(options=option)

driver.get("

driver.find_element(By.ID,'kw').send_keys('城下秋草 测试')

sleep(2) 暂停两秒等待页面加载

driver.find_element(By.ID,'su').click()

sleep(3) 暂停三秒等待搜索结果出现

driver.close()

```

只要安装了Selenium库,执行上述代码时,就可以正常驱动浏览器,无需特别获取驱动和配置。

Selenium 4 启动自动化执行源码分析

接下来我们从Selenium的Python源码来分析其启动过程:

当我们调用`driver = webdriver.Chrome(options=option)`这行代码时,会调用Selenium库中Chromium基础浏览器的webdriver初始化代码,位置在`.venv/Lib/site-packages/selenium/webdriver/chromium/webdriver.py`。

在初始化过程中,会通过`DriverFinder`方法来获取浏览器和Driver的路径。`DriverFinder`会调用SeleniumManager模块的`binary_paths`方法获取路径。

源码示例如下:

```python

finder = DriverFinder(self.service, options)

if finder.get_browser_path():

options.binary_location = finder.get_browser_path()

options.browser_version = None

self.service.path = finder.get_driver_path()

self.service.start()

```

Selenium Manager:驱动自动化的先锋

在Selenium 4的时代,流畅、自动化的浏览器测试离不开一个关键工具——Selenium Manager。这是一个强大的命令行程序,能够为您的浏览器测试自动化匹配和获取正确的驱动版本。

想象一下,您配置好了特定的浏览器类型和版本,Selenium Manager就像一位高效的助手,为您自动匹配相应的驱动版本。它不仅能够在网络上寻找合适的驱动文件,还能将这些文件保存在用户目录的“.cache\selenium”目录下,供Selenium随时调用。

例如,当您指定使用浏览器版本117时,Selenium Manager会迅速行动起来,下载并保存与该版本相对应的驱动。这个过程是透明的,您无需手动干预,只需通过简单的命令行参数,就能启动和管理您的浏览器会话。

当您执行命令时,Selenium Manager会默默地为您完成许多幕后工作。它会记录执行的每一个命令,并在日志中保存驱动的位置。如果出现任何错误或异常返回码,它会及时抛出WebDriverException,让您了解问题的所在。

简而言之,Selenium Manager是Selenium 4的一大亮点。它简化了浏览器和驱动的管理,让自动化测试更加流畅、高效。无论是开发者还是测试人员,都能从中受益,享受到它带来的便利和效率。

当您使用Selenium 4进行测试时,不妨让Selenium Manager成为您的得力助手,为您的浏览器测试之旅保驾护航。Selenium-manager:浏览器驱动的自动化管理神器

你是否曾经为管理浏览器和驱动程序而烦恼?Selenium-manager 0.4.24,这款命令行工具,能为你解决这一难题。它能自动管理Selenium所需的浏览器/驱动基础设施。现在,让我们一起深入了解其使用方法和特点。

你可以直接执行这个强大的程序,并添加"--help"查看其支持的参数列表。这些参数允许你轻松配置和管理你的浏览器和驱动程序。

浏览器支持:Selenium-manager支持多种浏览器,如chrome、firefox、edge、iexplorer、safari等。只需指定浏览器名称,它就能轻松找到对应的驱动。

驱动版本管理:除了浏览器版本外,你还可以指定驱动版本,如chromedriver的106.0.5249.61版本等。这使得你可以轻松切换到特定的驱动版本,以满足测试需求。

Selenium Grid下载:如果你使用Selenium Grid进行测试,selenium-manager还可以帮助你下载并管理Selenium Grid的版本。无需手动寻找和安装,一切交给它即可。

丰富的配置选项:从输出类型、操作系统、系统架构到网络代理,selenium-manager提供了丰富的配置选项,满足你的各种需求。例如,你可以设置输出类型为LOGGER、JSON等,以便更好地查看和管理输出信息。

详细的调试信息:通过添加"--debug"参数,你可以查看详细的调试信息,如驱动和浏览器的下载进度、版本信息等。这对于定位和解决问题非常有帮助。

灵活的下载策略:你可以根据需要选择下载浏览器和驱动,或者避免下载已经存在的资产。它还支持从镜像地址下载,以加速下载速度。

安全性考虑:除了管理功能外,selenium-manager还考虑到了安全性。例如,它支持避免发送使用统计信息,以保护你的隐私。

举个例子,如果你想使用firefox浏览器并指定版本为130.0,只需执行命令`selenium-manager.exe --browser firefox --debug`。它会根据你的需求自动下载并配置相应的浏览器和驱动。同样,如果你想使用Selenium Grid进行测试,只需添加"--grid"参数即可。

使用Selenium-manager,轻松启动Grid并配置资源

在2024年9月10日的某个午后,通过执行一条简单的命令`selenium-manager.exe --grid --debug`,我们开启了Selenium Grid的下载与配置之旅。这条命令所传递的信息,就像一曲优美的交响乐,奏响了Selenium在环境准备时的自动化序曲。

DEBUG日志中,我们可以看到详细的系统信息被发送到Plausible,包括浏览器类型“grid”,操作系统“windows”,架构“amd64”,语言设置以及Selenium版本“4.24”。系统提示“grid not found in the system”,这表明我们需要启动Grid。

随后,系统提示我们需要一个特定的驱动:selenium-server 4.24.0。于是,它自动从github的SeleniumHQ发布页面下载相应的jar文件。仅仅几分钟之后(具体为13:47:51),文件下载完成,并保存在指定的路径:C:\Users\Administrator\.cache\selenium\grid\4.24.0\selenium-server-4.24.0.jar。

这一流程展示了Selenium-manager的出色功能:它能够自动获取和配置浏览器、驱动以及grid server等资源,极大地提高了使用Selenium的便捷性。对于测试工程师来说,这无疑是一项重要的技能进阶。

如果你想了解更多关于测试职业进阶的知识,全方位梳理自己的技能体系,那么请关注我新开的课程——“测试高级工程师系统养成-高薪就业课”。在这门课程中,我们将深入探讨测试的各个方面,助你提升技能,迈向更高的职业阶段。

课程之中,我将分享更多关于Selenium以及其他测试工具的使用技巧和经验,帮助你提升测试能力,实现职业晋升。让我们一起在测试领域探索未知,共同成长!

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门