美文网首页
底层原理(一)元素操作与驱动交互

底层原理(一)元素操作与驱动交互

作者: Root_123 | 来源:发表于2019-11-23 16:52 被阅读0次

浏览器启动完成后,调用:driver.get("https://ke.qq.com/");
就能在导航栏中访问到指定的这个页面,这个里面发生了什么?
到底是客户端脚本直接操作浏览器还是通过某些中间件来完成??

底层原理如下:

1、在自动化测试过程中,存在三部分组件:客户端脚本+驱动+浏览器终端。
2、驱动文件,以geckodriver.exe为例,这个可执行的驱动文件启动后,相当于一个暴露了一系列接口的服务器,监听某一端口,例如:89890。
3、客户端的操作(访问页面,定位元素,输入数据,点击按钮等)都是封装成了接口请求(eg:/session/xx/yy),然后提交到驱动服务器。
4、驱动服务器接收到客户端的请求后,再跟终端浏览器交互。
5、终端浏览器做出相应操作。

下图描述了整个交互过程:


image.png

定位元素为例,定位搜索框,我们来看底下这行代码在执行的时候底层到底经历了些什么:

WebElement searchInputBox = driver.findElement(By.id("js_keyword")); image

实际,底层请求时,每个请求会被封装为一个command,然后根据不同的commannd封装得到不同的HttpRequest对象:

image

根据此命令,得到接口地址:

image

拿到此接口地址封装为一个HttpRequest请求。

image

client.execute(httpRequest,true),执行接口调用:

image

至于其他操作:往输入框输入数据,点击按钮等,都是对应一个接口地址,通过调用接口,请求驱动来处理,最后驱动同浏览器进行交互,浏览器按照指示做出对应操作。

Selenium有一个类AbstractHttpCommandCodec,此类中维护了众多自动化操作对应的接口地址:

image image image image image

另外,可能会有人好奇,驱动服务器是何时启动的服务。其实是在执行下面这行代码的时候启动的,大家可执行去debug调试selenium的底层代码:

image

当上面这行代码执行完,可以发现eclipse的控制台显示了如下信息:

image

说明此驱动服务器成功启动了,并且监听了本机的21984端口,等待客户端发起请求,并处理。

至于驱动跟浏览器之间是如何交互的,在后面的文章中会择机介绍,请大家守候。

相关文章

  • 底层原理(一)元素操作与驱动交互

    浏览器启动完成后,调用:driver.get("https://ke.qq.com/");就能在导航栏中访问到指定...

  • 底层原理(二)驱动与浏览器交互

    1.首先下载chromedriver与selenium-server-standalone.jar下载地址:(1)...

  • 编译原理,对嵌入式开发重要吗?

    很重要。 嵌入式开发,尤其是底层内核驱动开发、操作系统移植,会涉及到很多底层、编译原理的知识,比如: ...

  • os和sys模块区别

    os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口; sys模块负责程序与python解释器的交互,提...

  • tensorflow用到的一些python模块

    import os import sysos模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块...

  • rn应用中的卡顿

    Native与JavaScript交互原理图 卡顿的场景 rn应用界面的渲染是js驱动native完成的。js代码...

  • WEB自动化-05-Cypress-元素交互

    5 元素交互     元素识别和操作是UI自动化测试的基础,下面一起来学习一下在Cypress中的元素交互操作吧。...

  • 09、Selenium库详解

    1、什么是Selenium? 2、用法详解 2.1、基本使用 2.2、查找元素 2.3、元素交互操作 2.4、交互...

  • OC底层原理汇总

    OC底层原理(一).alloc实际调用流程分析OC底层原理(二).内存分配与内存对齐OC底层原理(三)、isa、对...

  • vue之自定义指令

    尽管Vue推崇数据驱动视图的理念,然而有的情况,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指...

网友评论

      本文标题:底层原理(一)元素操作与驱动交互

      本文链接:https://www.haomeiwen.com/subject/xtbhwctx.html