selenium webdriver实现的原理及流程
用Selenium实现自动化,主要需要三个东西:
1.自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
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 webdriver实现的原理及流程相关推荐
- Selenium WebDriver的工作原理
先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象.好理解拿来用用. 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车. 在开出租车时有三个角色: ...
- selenium原理python_通过python Selenium 库源代码来看Selenium Webdriver 实现原理
作为一名使用Selenium开发UI自动化多年的工程师,一直都对Selenium Webdriver的实现原理感觉不是很清楚.怎么就通过脚本控制浏览器进行各种操作了呢?相信很多Selenium的使用者 ...
- Selenium WebDriver架构
什么是Selenium? (What is Selenium?) Selenium is an Opensource Automation testing tool which is only mea ...
- Selenium Webdriver原理终于搞清楚了
目录 1. Selenium的历史 2. WebDriver协议 3. Selenium驱动浏览器原理 4. 测试代码与Webdriver的交互 5. Webdriver与浏览器的关系 6. Sele ...
- python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理
Webdriver运行原理 转帖请注明出处!谢谢 在开发Webdriver的自动化脚本过程中,Webdriver后台在创建WebDriver实例的过程中,先确认浏览器的原生组件中是否存在可匹配的版本. ...
- selenium webdriver 原理概述
背景 虽然掌握selenium webdriver提供的各种方法,就可以做web的UI自动化,但是本着知其然,也要知其所以然的态度,也为了提升自己.了解下selenium webdriver的原理是必 ...
- Selenium WebDriver的TestNG注释完整指南
TestNG是CédricBeust创建的测试框架 ,有助于满足我们的许多测试需求. 它被广泛用于硒中. 想知道NG代表什么? 好吧,它指的是"下一代" . TestNG与Juni ...
- day 03 selenium与Beautifulsoup4的原理与使用
#爬取京东商品数据import timefrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysdef ...
- 【自动化测试爬虫系列】Selenium Webdriver 介绍
一. Selenium Webdriver技术介绍 1. 简介 selenium Webdriver是一套针对不同浏览器而开发的web应用自动化测试代码库.使用这套库可以进行页面的交互操作,并且可以重 ...
最新文章
- [转贴]NIOS II 软核中EPCS配置芯片的存储操作
- Python学习【第6篇】:Python之文件操作
- [深度学习基础] 1. 图像识别问题的挑战及数据驱动过程
- creo减速器建模实例_3.16减速器箱体附件建模
- arm for asterisk1.8
- ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
- RocketMQ在Windows环境下部署(亲测有效)
- 荣耀20 PRO差评太多?原来是这个原因,回应:差评不冤
- OpenStack(1)
- 在Mac OS X 10.10.3下使用源码包编译安装GCC5.1
- Windows下 DirectX SDK 配置检验
- 皮克定理 poj2954
- 金融科技发展布局之服务渠道建设
- ROS的 sudo rosdep init 的报错终极解决方案
- 在 vue 路由懒加载中给 Webpack Chunks 命名
- Python实现数字的补数的两种方法
- SPSS统计教程:判断数据正态分布的超多方法!
- 密码学的100个基本概念
- 下载微信文章中腾讯视频的方法
- 互联网云厂商,打响能源TO B争夺战
热门文章
- 武汉新华电脑学校计算机协会,重庆新华电脑学校计算机管理协会更名庆典
- 知乎最高赞回答!零代码基础,把报表做出科技感是什么体验?
- 一种汽车巡航控制的分层控制算法——裴晓飞
- 计算机组成原理_扩展操作码
- 解析视频编码原理——从孙艺珍的电影说起(一)
- dcount函数C语言,Excel表格技巧—DCOUNT函数怎么用
- Template 基础篇-函数模板
- 使用cpolar发布群晖NAS上的网页(2)
- c语言case后加什么,c++ switch语句的使用(case 后面可以跟N个语句)
- virsh 网络设置_KVM-virsh 创建虚拟网络