python之selenium原理学习笔记

一,selenium工作原理(参考文档:https://blog.csdn.net/dawei_yang000000/article/details/87639928)

自动化测试代码发送请求给到浏览器驱动,比如chromedriver.exe(需要下载并放置在python安装目录的同级目录下即可),浏览器驱动解析后并发送给浏览器,

浏览器执行解析后的命令。如下图:

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

使用HTTP协议的原因

因为HTTP协议是一个浏览器和Web服务器之间通信的标准协议,而几乎每一种编程语言都提供了丰富的http libraries,这样就可以方便的处理客户端Client和服务器Server之间的请求request及响应response,WebDriver的结构中就是典型的C/S结构,WebDriver API相当于是客户端,浏览器驱动是服务器端。

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

猜你喜欢

转载自www.cnblogs.com/ella-li/p/11621734.html