最新公告
  • 欢迎您光临陌佑网,提供代搭建与我们一样的资源站,系统搭建出售开通SVIP
  • 举例说明:
    乘客:他/她告诉出租车司机去哪里,大概怎么走
    出租车司机:他按照乘客的要求来操控出租车
    出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地
    实际应用:
    工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
    浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
    浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。

    1. 工程师写的自动化测试代码就相当于是乘客
    2. 浏览器的驱动就相当于是出租车司机
    3. 浏览器就相当于是出租车
      那在WebDriver脚本运行的时候,它们之间是如何通信的呢?为什么同一个browser driver即可以处理java语言的脚本,也可以处理python语言的脚本呢?让我们来看一下,一条Selenium脚本执行时后端都发生了哪些事情:

    1.对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动
    2.浏览器驱动中包含了一个HTTP Server,用来接收这些http请求
    3.HTTP Server接收到请求后根据请求来具体操控对应的浏览器
    4.浏览器执行具体的测试步骤
    5.浏览器将步骤执行结果返回给HTTP Server
    6.HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。
    为什么使用HTTP协议呢?
    因为HTTP协议是一个浏览器和Web服务器之间通信的标准协议,而几乎每一种编程语言都提供了丰富的http libraries,
    这样就可以方便的处理客户端Client和服务器Server之间的请求request及响应response,WebDriver的结构中就是典
    型的C/S结构,WebDriver API相当于是客户端,而小小的浏览器驱动才是服务器端。
    那为什么同一个浏览器驱动即可以处理Java语言的脚本,也可以处理Python语言的脚本呢?
    这就要提到WebDriver基于的协议:JSON Wire protocol。
    JSON Wire protocol是在http协议基础上,对http请求及响应的body部分的数据的进一步规范。
    我们知道在HTTP请求及响应中常常包括以下几个部分:http请求方法、http请求及响应内容body、http响应状态码
    等。
    所以在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,这样同一个
    浏览器的驱动就即可以处理Java语言的脚本,也可以处理Python语言的脚本了。


    陌佑网 » Webdriver+Selenium工作原理

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 142会员总数(位)
    • 16688资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1278稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情