Selenium1、Selenium2、Selenium3的区别,终于讲清楚了

本文详细介绍了Selenium从1到3的演进过程,包括Selenium1的selenium server和ClientLibraries工作原理,Selenium2引入的WebDriver直接操作浏览器元素,以及Selenium3对Edge和Safari原生驱动的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 selenium 1的原理

  selenium 1 包括以下两部分:selenium server、 Client Libraries组成

  1. selenium server

  selenium server负责控制浏览器的行为。主要有launcher,Http Proxy,selenium core。selenium core使用Selenium Server嵌入到浏览器页面中。实质上,selenium core是由JS函数组成,这样我们可以实现用程序对浏览器进行操作。

  2. client Libraries

  编写测试用例时控制selenium server的库

  3. selenium RC与TestCase之间的关系

   

  4. testCase 工作过程

  (1).测试案例(Testcase)通过Client Lib的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。

  为什么要通过发送Http请求控制Selenium Server而不采用其他方式呢?从上文可以看出,Selenium Server是一个独立的中间服务器(确切地说是代理服务器),它可以架设在其他机器上!所以测试案例通过发送HTTP请求去控制Selenium Server是很正常的。

  (2).Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。

  (3).测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。

  (4).Selenium Core接收到指令后,执行操作。

  (5).浏览器收到新的页面请求信息(因为在(4)中,Selenium Core的操作可能引发新的页面请求),于是发送Http请求,请求新的Web页面。

  由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送的请求。

  (6).Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。

  (7).Selenium Server的Http Proxy把接收的Web页面返回给浏览器。

二、 selenium 2-selenium webDriver原理

  1. 直接利用浏览器原生的API,封装成更加面向对象的selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身。如:截屏、窗口大小、启动、关闭、安装插件、配置证书等。

  2. selenium 2是基于对象的测试。不同的对象拥有不同的操作方法。selenium 1则更多的基于方法的API。

  3. WebDriver还支持Android和ios上的浏览器

  4. 便于与junit和testNG结合

  5. selenium Grid实现多平台同时测试,满足兼容性测试需求

 二、 selenium 3原理

       1.selenium 3.0有了更新的特性加入,尤其是对Edge和safari原生驱动的支持,Edge驱动由MS提供,safari原生驱动由Apple提供。

       2.在最新的Firefox方面,开始支持Mlzilla的geckodriver驱动,来驱动Firefox的控制。

       3.selenium3.0可以支持firefox47以上版本,但是许要下载geckodriver.exe驱动,并添加到环境变量path下

<think>嗯,用户让我介绍一下Selenium,包括怎么读。首先,我得确认发音。Selenium这个词可能有人会读错。我记得它来自希腊语“σελήνη”(Selene),是月亮女神的名字,所以发音应该是类似“瑟琳娜”,不过中文里通常怎么读呢?可能是“色列尼厄姆”或者“瑟琳娜姆”?需要查证一下正确发音。 接下来,介绍Selenium本身。它是一个自动化测试工具,主要用于Web应用程序的测试。不过用户可能不太清楚它的具体功能和应用场景,所以需要简明扼要地说明。可能需要提到它支持多种浏览器和编程语言,比如Java、Python、C#等,还有它的主要组件,比如Selenium WebDriver、IDE、Grid等。 还要考虑用户可能的背景。用户可能是开发者、测试人员,或者只是对技术感兴趣的人。如果是开发者或测试人员,他们可能需要更详细的技术细节,比如如何安装、基本用法示例。但用户的问题只是要求介绍和发音,所以可能不需要深入技术细节,但最好还是简要提一下使用步骤,比如安装、编写脚本、运行测试等。 另外,用户要求用中文回答,结构清晰,分步骤说明。所以需要把内容分成几个部分,比如发音、定义、功能、应用场景、使用步骤、优点和缺点。这样结构更清晰,便于用户理解。 需要注意的是,用户特别提到数学表达式要用特定格式,但这个问题可能不涉及数学内容,所以可能不需要用到LaTeX数学符号,但如果有任何代码示例,需要用行内代码格式。不过用户的问题是关于Selenium的介绍,可能不会有数学表达式,但可能需要代码示例,比如安装命令或者简单的脚本例子。这时候要确保代码部分正确使用格式,比如使用反引号或者代码块。 另外,用户可能潜在的问题是想了解Selenium是否适合他们的项目,或者如何开始使用它,所以除了基本介绍,可以提到它的优点,比如开源、跨平台、支持多语言,以及缺点,比如处理动态内容可能需要等待时间,或者较难处理验证码等。 总结下来,回答的结构应该是: 1. 发音 2. 定义 3. 主要功能与组件 4. 应用场景 5. 使用步骤 6. 优缺点 需要确保每个部分简明扼要,用通俗易懂的中文,避免技术术语过多,必要时举例说明。比如,在讲应用场景时,可以提到自动化测试、数据抓取、自动化操作等,这样用户更容易理解其用途。 最后检查是否有遗漏的信息,比如Selenium的历史背景,或者与其他工具的比较(如与Puppeteer),但根据用户的问题,可能不需要深入这些内容,保持回答简洁即可。</think>### 1. Selenium的发音 Selenium读作 **/səˈliːniəm/**(音似“瑟-里-尼-厄姆”),源自希腊语“σελήνη”(Selene,月亮女神)。中文通常直接音译为“**塞莱尼姆**”或“**瑟琳娜**”。 --- ### 2. Selenium的定义 Selenium是一个**开源自动化测试框架**,主要用于Web应用程序的自动化测试。它支持多种浏览器(如Chrome、Firefox、Edge)和编程语言(如Python、Java、C#),可模拟用户操作(点击、输入、跳转等)并验证页面行为。 --- ### 3. 主要功能与组件 - **Selenium WebDriver**:核心工具,通过代码直接控制浏览器。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.example.com") ``` - **Selenium IDE**:浏览器插件,支持录制和回放测试脚本(适合非编程人员)。 - **Selenium Grid**:分布式测试工具,支持多机器并行运行测试用例。 --- ### 4. 应用场景 - **自动化测试**:功能测试、回归测试。 - **数据抓取**:动态网页内容提取(需遵守网站规则)。 - **自动化操作**:批量填写表单、定时任务等。 --- ### 5. 使用步骤(以Python为例) 1. **安装库**: ```bash pip install selenium ``` 2. **下载浏览器驱动**(如ChromeDriver)并配置路径。 3. **编写脚本**: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") search_box = driver.find_element("id", "kw") search_box.send_keys("Selenium") search_box.submit() driver.quit() ``` --- ### 6. 优点与缺点 - **优点**: - 免费开源,社区支持强大。 - 跨平台(Windows、macOS、Linux)。 - 支持多语言和浏览器。 - **缺点**: - 动态内容加载需手动设置等待时间(如`WebDriverWait`)。 - 无法直接处理验证码或桌面应用。 --- ### 总结 Selenium是Web自动化领域的标杆工具,适合开发者和测试工程师提升效率。若需处理更复杂场景(如验证码),可结合其他工具(如OCR库)扩展功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值