Webdriver+Selenium工作原理

简介: Webdriver+Selenium工作原理总结

举例说明:
乘客:他/她告诉出租车司机去哪里,大概怎么走
出租车司机:他按照乘客的要求来操控出租车
出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地
实际应用:
工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。

  1. 工程师写的自动化测试代码就相当于是乘客
  2. 浏览器的驱动就相当于是出租车司机
  3. 浏览器就相当于是出租车
    那在WebDriver脚本运行的时候,它们之间是如何通信的呢?为什么同一个browser driver即可以处理java语言的脚本,也可以处理python语言的脚本呢?让我们来看一下,一条Selenium脚本执行时后端都发生了哪些事情:

1.对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动
2.浏览器驱动中包含了一个HTTP Server,用来接收这些http请求
3.HTTP Server接收到请求后根据请求来具体操控对应的浏览器
4.浏览器执行具体的测试步骤
5.浏览器将步骤执行结果返回给HTTP Server
6.HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。
为什么使用HTTP协议呢?
因为HTTP协议是一个浏览器和Web服务器之间通信的标准协议,而几乎每一种编程语言都提供了丰富的http libraries,
这样就可以方便的处理客户端Client和服务器Server之间的请求request及响应response,WebDriver的结构中就是典
型的C/S结构,WebDriver API相当于是客户端,而小小的浏览器驱动才是服务器端。
那为什么同一个浏览器驱动即可以处理Java语言的脚本,也可以处理Python语言的脚本呢?
这就要提到WebDriver基于的协议:JSON Wire protocol。
JSON Wire protocol是在http协议基础上,对http请求及响应的body部分的数据的进一步规范。
我们知道在HTTP请求及响应中常常包括以下几个部分:http请求方法、http请求及响应内容body、http响应状态码
等。
所以在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,这样同一个
浏览器的驱动就即可以处理Java语言的脚本,也可以处理Python语言的脚本了。

相关文章
|
移动开发 前端开发 算法
Selenium和Appnium、Airtest的底层原理
Selenium和Appnium、Airtest的底层原理
1201 0
|
3月前
|
Web App开发 测试技术 API
Web自动化测试框架(基础篇)--Selenium WebDriver工作原理和环境搭建
本文详细介绍了Selenium WebDriver的工作原理,包括其架构、通信机制及支持的浏览器,并指导读者如何在Python环境下搭建Selenium WebDriver的测试环境,从安装Python和Selenium库到编写并运行第一个自动化测试脚本。
238 0
|
6月前
|
敏捷开发 监控 IDE
深入理解自动化测试工具Selenium的工作原理与实践应用
【5月更文挑战第26天】 随着敏捷开发和持续集成理念的普及,自动化测试在软件开发生命周期中扮演了至关重要的角色。Selenium作为最流行的自动化测试工具之一,以其开源、跨平台和支持多种编程语言的特性被广泛使用。本文将详细解析Selenium的核心组件,探讨其工作原理,并通过案例分析展示如何高效地实施Selenium进行Web应用的自动化测试。我们将从测试准备到结果分析的全过程,提供一系列实用的策略和最佳实践,帮助读者构建和维护一个健壮的自动化测试环境。
|
Web App开发 数据采集 缓存
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
493 0
曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
|
Web App开发 XML 前端开发
曲鸟全栈UI自动化教学(三):Selenium页面操作原理及如何高效的进行元素定位
曲鸟全栈UI自动化教学(三):Selenium页面操作原理及如何高效的进行元素定位
260 0
曲鸟全栈UI自动化教学(三):Selenium页面操作原理及如何高效的进行元素定位
|
JSON 测试技术 数据格式
软件测试面试题:请描述Selenium Webdriver的工作原理。
软件测试面试题:请描述Selenium Webdriver的工作原理。
135 0

热门文章

最新文章

下一篇
无影云桌面