1、WebDriver工作原理

例子:

我们先从一个打车的例子,来理解下webdriver的工作原理,当我们打车时,会有3个角色:

  • 乘 客 : 告 诉 出 租 车 司 机 去 哪 里 , 大 概 怎 么 走
  • ​出 租 车 司 机 : 按 照 乘 客 的 要 求 来 操 控 出 租 车
  • ​出 租 车 : 出 租 车 按 照 司 机 的 操 控 完 成 真 正 的 行 驶 , 把 乘 客 送 到 目 的 地

对应角色:
  • 工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
  • 浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
  • 浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。
技术上解释工作原理:
  • WebDriver API(基于Java、Python、C#等语言),对于java语言来说,就是下载下来的Selenium的Jar包,比如Selenium-java-3.8.1.zip包,代表Selenium3.8.1的版本

  • 浏览器的驱动(browser driver),每个浏览器都有自己的驱动,均以exe文件形式存在比如谷歌的chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe

  • 浏览器,浏览器当然就是我们很熟悉的常用的各种浏览器(IE、Firefox、Chrome)。

WebDriver和浏览器如何通信:
  • 对于每一条Selenium脚本,一个http请求会被创建并发送给浏览器的驱动
  • 浏览器驱动轴包含了一个HTTP Server,用来接收这些http请求
  • HTTP Server接收到请求后根据请求来具体操控对应的浏览器
  • 浏览器执行具体的测试步骤
  • 浏览器将步骤执行结果返回给HTTP Server
  • HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息

2、WebDriver的协议

  • WebDriver使用的协议是:JSON Wire protocol(是一个公共的通信协议)
  • 通信的数据格式是JSON
posted on 2024-04-16 16:43  彭灰  阅读(407)  评论(0编辑  收藏  举报