selenium原理

我们使用Selenium实现自动化测试,主要需要3个东西

1.测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)

2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,比如:geckodriver.exe(chrome)

3.浏览器,目前selenium支持市面上大多数浏览器,如:火狐,谷歌,IE等

selenium脚本

先看一个简单的代码

from selenium import webdriverdr = webdriver.Chrome()  # 打开浏览器

执行上述代码,我们会发现程序打开了Chrome浏览器

前提:你已经正确配置了chrome的驱动和对应版本, 下载的浏览器驱动放到python的根目录下,便于程序在执行驱动的时候查找(因为你安装python软件时配置过环境变量

那么selenium是如何实现这个过程的呢?通过下图理解selenium的工作原理

用Selenium实现自动化,主要需要三个东西:

1.自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动,IE驱动)

2.浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器

3.浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。

测试代码中包含了各种期望的对浏览器界面的操作,例如点击。测试代码通过给Webdriver发送指令,让Webdriver知道想要做的操作,而Webdriver根据这些操作在浏览器界面上进行控制,由此测试代码达到了在浏览器界面上操作的目的。

Selenium脚本执行时后端实现的流程:

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

WebDriver基于的协议:JSON Wire protocol

JSON Wire protocol是在http协议基础上,对http请求及响应的body部分的数据的进一步规范。body部分主要传送具体的数据,在WebDriver中这些数据都是以JSON的形式存在并进行传送的,这就是JSON Wire protocol。所以在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,这样同一个浏览器的驱动就即可以处理Java语言的脚本,也可以处理Python语言的脚本了。

selenium工作原理相关推荐

  1. 曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作

    一.前言 上篇文章我们学习了Selenium页面操作原理及如何高效的进行元素定位 那Selenium的工作原理又是什么?是如何驱动浏览器的呢?这篇文章为你讲解Selenium工作原理及Webdrive ...

  2. 测试开发面试准备之Selenium 工作原理

    Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0,本文仅介绍Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2 ...

  3. selenium工作原理详解

    selenium简介 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11), ...

  4. 一篇文章带你了解-selenium工作原理详解

    前言 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla ...

  5. Selenium工作原理_Sinno_Song_新浪博客

    转自:https://www.cnblogs.com/linuxchao/ 1.selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过Webdriv ...

  6. 软件测试面试真题 | Selenium 的工作原理是什么?

    搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核 Selenium 通常被我们用做测试web的自动化测试工具,其实 Selenium 不仅仅是个API,它是一组工具集合,它是由三大组 ...

  7. selenium之作用和工作原理

    selenium之作用和工作原理 selenium的作用和工作原理 利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏 ...

  8. Selenium WebDriver的工作原理

    先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象.好理解拿来用用. 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车. 在开出租车时有三个角色: ...

  9. selenium的工作原理

    Selenium是⼀一个⽤用于Web应⽤用程序 ⾃自动化测试⼯工具.Selenium测试直 接运⾏行行在浏览器器中,就像真正的⽤用 户在操作⼀一样.Selenium并提供⼀一 套测试函数,⽤用于⽀支持 ...

最新文章

  1. Windows自动启动程序的十大藏身之所
  2. 【JUC系列】Java的锁机制
  3. 御术:比能力更重要的是你的底层操作系统
  4. Android插件化开发基础之静态代理模式
  5. qt中创建控件布局以及删除原有布局和控件
  6. 被薅秃了!元气森林:损失近千万元 将为14.05万下单用户每人寄一箱白桃气泡水...
  7. sed手册-3 例子
  8. hbuilderx的快捷键整理pdf_47个电脑快捷键大全,让你工作提升100倍,一般人我不告诉他...
  9. 【渝粤教育】国家开放大学2018年秋季 8109-22T (1)货币银行学 参考试题
  10. 条码打印软件如何实现二维码内容换行显示 1
  11. 各省产业结构-高级化指数(二产与三产比值)合理化指数
  12. Google奥运会彩蛋,你确定不来参加一下吗?
  13. android学习---开发Google地图应用程序
  14. 个人简历模板 个人简历表下载 个人简历模板下载
  15. linux 硬件故障 日志_对Linux中的硬件问题进行故障排除
  16. 关于UVC PTZ功能
  17. JAVA生成二维码链接(扫描二维码后进行指定链接跳转)--全网最详细
  18. 闭关六个月整理出来的微机原理知识点(特别适用河北专接本)
  19. PPT文件不能编辑的情况总结
  20. 视频教程-Ps教程之神奇的Photoshop自动化技术-Photoshop

热门文章

  1. cocos2dx的渲染机制
  2. unity 模仿原神的人物移动和镜头变换
  3. Mysql数据库性能调优面试大全经典分析
  4. Qmake设置输出文件路径与名字
  5. 项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError...
  6. 几个Redis的监控指令以及保护Redis安全
  7. TPS71733DSER
  8. 免费php系统下载资源网,PbootCMS(开源免费PHP建站系统)
  9. python以三维tensor为例详细理解unsqueeze和squeeze函数
  10. 四十七.c语言数组作为函数参数