测试开发面试准备之Selenium 工作原理
Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0,本文仅介绍Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。
Selenium2简介
Selenium是一个用于Web应用程序测试的工具,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。
Webdriver的一个简单的架构图,如下图所示:
Selenium2原理
webdriver是按照server–client的经典设计模式设计的:
server端就是remote server,可以是任意的浏览器:我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;
client端简单说来就是我们的测试代码:们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被server端(也就是被测浏览器)server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;
简单介绍一下webdriver的工作原理:
- 启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。
- 客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。
- Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。
注:
the WebDriver Wire Protocol是Selenium自己设计定义的协议,这套协议非常之强大,几乎可以操作浏览器做任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等。
WebDriver Wire协议是通用的,也就是说不管FirefoxDriver还是ChromeDriver,启动之后都会在某一个端口启动基于这套协议的Web Service。
例如FirefoxDriver初始化成功,默认从http://localhost:7055开始IE则是http://localhost:52432,如下图截图:
转载于:https://www.cnblogs.com/william126/p/10889196.html
测试开发面试准备之Selenium 工作原理相关推荐
- 测试开发面试技巧_面试技巧将给您带来信心并帮助您获得开发工作
测试开发面试技巧 by John Cobb 约翰·科布(John Cobb) 面试技巧将给您带来信心并帮助您获得开发工作 (Interview tips that will give you conf ...
- 曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作
一.前言 上篇文章我们学习了Selenium页面操作原理及如何高效的进行元素定位 那Selenium的工作原理又是什么?是如何驱动浏览器的呢?这篇文章为你讲解Selenium工作原理及Webdrive ...
- 一道大厂测试开发面试真题,你需要几分钟解答?
又到一年年底!年底其实是跳槽换坑的绝佳时机,毕竟可以「年前面试,年后入职」,而且面试越早,好坑位较多,可选择的余地也较大.对于做好准备的测试同学来说,是绝对要鼓励多发简历,多找找面试机会的.哪怕为接下 ...
- 【骐程】【深信服测试开发面试】首次面试互联网
[骐程][深信服测试开发面试]首次面试互联网 面试中出现的问题.主要就是 一面: 主要对自己的项目中使用的技术不是很熟悉,尤其是对自己项目中的hashmap等这些东西的基础底层原理没有看,也没有掌握, ...
- python开发面试题目_Python测试开发面试笔试题
Python 测试开发面试笔试题 一,中文单项选择题(30 分,每个 3 分) 1.下列哪个语句在 Python 中是非法的? A.x = y = z = 1 B.x = (y = z + 1) C. ...
- selenium工作原理详解
selenium简介 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11), ...
- 【面试总结】测试开发面试题目
摘要 从三月初开始找工作到现在,先后面试了阿里巴巴.支付宝.字节跳动.网易.快手的测试开发岗. 大公司对于测试发开的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试 ...
- 一篇文章带你了解-selenium工作原理详解
前言 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla ...
- 美团 测开|测试开发 面试真题|面经 汇总
美团测开一面 时长:1小时 介绍一下项目 说一下为什么选择测开 项目中用到的ES说一下 你项目实现过程中有没有遇到什么问题? 微信朋友圈的功能性测试,要从那些方面考虑 测试的一般流程 linux用的多 ...
最新文章
- 苹果运行内存比较_决定手机流畅度到底是看CPU还是运行内存,你知道么?
- Swift中使用构建配置来支持条件编译-b
- 业界率先支持 MCP-OVER-XDS 协议,Nacos 2.0.1 + 1.4.2 Release 正式发布
- 指针作为函数参数引用数组的任意元素
- 热血动漫番太好看了!用Python爬取了1T的动漫,内存都爆了
- 联想服务器RD450 配置RAID5阵列图文方法
- 基于HEVC的UHD(超高清4K)视频质量评价
- 数据结构笔记(九)-- 单链队列
- PHP中H5棋牌开发的异常处理
- SpringBoot学习之文件结构和配置文件
- python俄罗斯方块代码34行_Python:游戏:300行代码实现俄罗斯方块
- AD14 如何设置PCB板框大小及形状
- oracle 导入报错ORA-39126,ORA-06502,LPX-00230
- 从400亿估值的链家网成长为4000亿的房地产产业平台,贝壳做对了这三点创新
- ✨❤️CSDN标题党❤️,创意无极限,那不直接全网站都花的飞起?
- android耳机检测驱动,[RK3288][Android6.0] 有线耳机驱动小结
- javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)
- python-某旗小说app的学习过程
- RichEdit的用法总结
- 爬虫系列:读取 CSV、PDF、Word 文档
热门文章
- oracle数据库查表_Oracle面试问题-技术篇
- centos路由查看命令_CentOS下使用Route命令添加路由
- github图---小章鱼图标
- 线上CPU飚高(死循环,死锁……)?帮你迅速定位代码位置
- spring boot 整合 (全)
- 公共平台服务治理与鉴权
- js中如何删除json对象的某一个选项
- 编码文件AndroidStudio初体验:解决Execution failed for task ':TestAndroid:compileDebug'.
- 值类型 引用类型 堆栈 堆 之 异想
- 在iview的Table中添加Select(render)