您可以使用多个编程语言编写测试(目前支持的语言有Java,Python,Ruby, C#),并且 Selenium 能够在一个或多个浏览器中执行这些测试。Selenium最常用的版本是Selenium2和Selenium3。大家可以理解为selenium3是selenium2的升级版本,主要更新内容如下:
成都创新互联专注于颍上企业网站建设,响应式网站,商城开发。颍上网站建设公司,为颍上等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
下面我就为大家详解selenium的两个核心问题:
1.支持多种语言;
2.可以在多个浏览器中运行脚本
Selenium的架构可以用下面的图进行概况
蓝色的图Selenium Language Binding就是我们平时使用的编码语言,包括java、python等等。可以看到这些语言并没有直接与Browser Drivers进行通信,而是通过了JSON Wire
Protocol,这就是webdriver协议 ,详情请参考https://www.w3.org/TR/webdriver/ 。
简单的说他定义了一套接口规范,以我们最熟悉的点击操作为例,他对应的接口协议是:
POST /session/{session id}/element/{element id}/click
这样以来,无论我们编码使用python代码来执行点击操作:
driver.find_element_by_id("").click()
还是以java代码执行点击操作:
driver.findElement(By.id("")).click();
都会通过selenium客户端的程序将click操作转化成对应的webdriver协议。这样对于Browser Drivers来说只需要解析具体协议,而无需关注客户端使用的是哪种代码了,这就是selenium支持多种语言的原理。
在Browser Drivers中可以看到各个浏览器的driver,这里我们以chromedriver为例进行讲解。在代码中直接 new ChromeDriver() 将会启动一个 ChromeDriver进程,ChromeDriver是一个独立的服务,它是 google 为网站开发人员提供的自动化测试接口,它是 selenium 和 chrome浏览器进行通信的桥梁。chromeDriver解析webdriver协议,然后根据解析结果,调用与之对应的Remote Debugging协议来操控chrome浏览器,它可以和浏览器内核进行交互进而操控浏览器,这里就不对该协议进行详细介绍了,以上就是selenium操控chrome浏览器的原理。
以此类推,大家就会了解为什么使用selenium2和3操控不同的浏览器,需要先下载与其对应的浏览器driver了。
新闻标题:Selenium原理精讲
URL地址:http://www.mswzjz.cn/qtweb/news15/266665.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能