WebDriver 原理
注:学会根据执行顺序看底层代码
《以下内容摘自大师兄博客》
WebDriver
webdriver是按照server – client的经典设计模式设计的。
webdriver的作用就是创建一个新的浏览器实例,也就是启动一个Server端。
(Starts the service and then creates new instance of chrome driver)
server端就是我们的Remote server,也就是我们通过各个不同浏览器所启动的浏览器实例,在我们脚本启动浏览器后,这个浏览器就可以称之为我们的Remote server,它的职责就是等待client发送请求并做出相应处理。
client 就是我们的测试代码,我们测试代码中的所有操作,比如打开浏览器,寻找元素,点击都是以http请求的方式发送给被测试浏览器,也就是我们的Remote server,remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息(这里调用的接口是浏览器的源生API,而每一个浏览器都有自己的一套接口信息,这也就是为什么我们要安装不同的驱动的原因)
WebDriver工作流程
1、通过WebDriver创建一个浏览器服务,启动的浏览器实例将作为WebDriver 的 remote server。
2、脚本启动时会在新的线程中启动一个浏览器,并绑定特定的端口,每个浏览器有不同的端口段。
3、client 创建1个session,在该session中通过http请求向remote server发送restful(HTTPRequest)的请求,remote server解析请求,完成相应操作并返回response。
4、分析response,继续执行脚本还是结束执行
command.py
Command类中定义了WebDriver的一些常用的常量。
remote\webdrvier.py
所有浏览器webdrvier的基类,其中包含了所有webdriver的api接口
remote\remote_connection.py
包含启动Remote WebDrvier server,执行client请求,self._commands是selenium的核心请求参数,根据对应的Command常量,发送不同的http请求。
Page Object Model(POM)的优势
1.    POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
2.    对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
3.    可复用的页面方法代码会变得更加优化
4.    更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,方法名命名为: gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。
WebDriver 原理的更多相关文章
- selenium-webdriver(python) (十四) -- webdriver原理
		
之前看乙醇视频中提到,selenium 的ruby 实现有一个小后门,在代码中加上$DEBUG=1 ,再运行脚本的过程中,就可以看到客户端请求的信息与服务器端返回的数据:觉得这个功能很强大,可以帮助理 ...
 - selenium-webdriver(python) (十四) -- webdriver原理(转)
		
之前看乙醇视频中提到,selenium 的ruby 实现有一个小后门,在代码中加上$DEBUG=1 ,再运行脚本的过程中,就可以看到客户端请求的信息与服务器端返回的数据:觉得这个功能很强大,可以帮助理 ...
 - Selenium WebDriver原理(二):Selenium是如何操纵浏览器的?
		
前言 上一篇文章<selenium webdriver 是怎么运行的>用了一个简单的例子--搭出租车,形象地讲解selenium webdriver 是如何运行的,而这一篇文章可以理解为深 ...
 - Selenium(十三):验证码的处理、WebDriver原理
		
1. 验证码的处理 对于Web应用来说,大部分的系统在用户登录时都要求用户输入验证码.验证码的类型很多,有字母数字的.有汉字的,甚至还需要用户输入一道算术题的答案的.对于系统来说,使用验证码可以有效地 ...
 - Selenium WebDriver原理
		
WebDriver原理 WebDriver是按照Server-Client的经典设计模式设计的. Server端就是RemoteServer,可以是任意的浏览器,当我们的脚本启动浏览器后,该浏览器就是 ...
 - Selenium 2自动化测试实战24(webdriver原理)
		
一.webdriver原理 webdriver是按照Server-Client的经典设计模式设计的.Server端就是Remote Server,可以是任意的浏览器.当我们的脚本启动浏览器后,该浏览器 ...
 - webdriver原理及操作
		
webdriver原理: 1. WebDriver 启动目标浏览器,并绑定到指定端口.该启动的浏览器实例,做为 webdriver 的 remote server. 2. Client 端通过 Com ...
 - webdriver原理、协议
		
1.webdriver client的原理是什么? 当测试脚本启动firefox的时候,selenium-webdriver 会首先在新线程中启动firefox浏览器.如果测试脚本指定了firefox ...
 - Selenium WebDriver原理(一):Selenium WebDriver 是怎么工作的?
		
首先我们来看一个经典的例子: 搭出租车 在出租车驾驶中,通常有3个角色: 乘客 : 他告诉出租车司机他想去哪里以及如何到达那里 对出租车司机说: 1.去阳光棕榈园东门 2.从这里转左 3.然后直行 2 ...
 
随机推荐
- javaweb笔记全套
			
Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace 选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...
 - JavaScript文件引入方式区别
			
1.JavaScript文件引入方式 (1)正常引入 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js&quo ...
 - win7 登录后只能使用“临时配置文件”,原来的配置文件无法启用!
			
这个问题,修改注册表就可以解决. 开始-> 运行-> 输入regedit,回车, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur ...
 - 在Ubuntu下设置默认编辑器
			
在默认情况下,Ubuntu 系统会为用户预设程序.就拿文本编辑器来说吧,Ubuntu 预设的是 Nano,对某些朋友来说,使用 Vim 可能更得心应手些.那么如何更改这些预设的程序呢? 你可以使用 s ...
 - maven 配置环境变量
			
maven 环境变量配置 CreationTime--2018年6月4日18点45分 Author:Marydon 前言 要先运行maven,需要按安装并配置jdk,没有配置的见文末推荐. 1.m ...
 - servlet ServletConfig ServletContext
			
ServletConfig对象 在Servlet的配置文件中,可以使用一个或者多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数后,we ...
 - putty简单使用
			
一.Putty简介 Putty是一款轻便的远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行方式).Putty完全免费,而且无需安装(双击即可运行),支持多种连接类型(Tel ...
 - 【转】排名前十位的Linux发行版介绍
			
Linux Distributions众多,据说有350个之多.distrowatch.com网站评出了排名前十位的Linux发行版.它们是:1.Ubuntu,当前最新版本是10.10:2.Fedor ...
 - poj-------Common Subsequence(poj 1458)
			
Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 34477 Accepted: 13 ...
 - 【LeetCode】14. Longest Common Prefix (2 solutions)
			
Longest Common Prefix Write a function to find the longest common prefix string amongst an array of ...