当前位置:   article > 正文

web自动化测试系列之selenium的运行原理和常用方法介绍(二)

web自动化测试系列之selenium的运行原理和常用方法介绍(二)

在上文中我们编写了一段简单的代码 ,可以驱动浏览器访问百度并搜索关键字 。这里我们再把这段代码再拿来加以说明 。

  1. # 1. 导包
  2. from selenium import webdriver
  3. import time
  4. # 2. 创建浏览器驱动
  5. driver = webdriver.Chrome()
  6. driver.maximize_window()
  7. # 3. 打开web页面,输入百度
  8. driver.get("http://www.baidu.com")
  9. time.sleep(3) # 休眠3
  10. # 4. 在浏览器地址栏中输入关键字 :python
  11. driver.find_element_by_id("kw").send_keys("python")
  12. # 5. 点击按钮 :百度一下
  13. driver.find_element_by_id("su").click()
  14. # 6. 暂停
  15. time.sleep(5)
  16. # 7. 关闭浏览器
  17. driver.quit()

如果你是初次接触它 ,你可能会想 ,这段代码是怎么驱动浏览器运行的了 ?要知道这个问题的答案 ,就必须搞清楚以下3个问题 。

  1. 它(selenium)的运行原理 .
  2. 所调用方法的含义
  3. 它是如何准确的点击按钮和进行输入框输入的 ?

本篇幅只聊前两个问题 。

1.selenium的运行原理

下面这张图是selenium官网提供的一张运行原理图 ,比较清楚地说明了它的运行原理 。

具体步骤是 :

  1. 当使用 Selenium启动浏览器器时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并与浏览器器绑定。之后,Remote Server 就开始监听 Client 端的操作请求;
  2. 执⾏行行测试时,测试⽤用例例会作为 Client 端,将需要执⾏行行的⻚页⾯面操作请求以 Http Request 的⽅方式发送给 Remote Server 。 该 Http Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器器执⾏行行的具体操作;
  3. Remote Server 接收到请求后,会对请求进⾏行行解析,并将解析结果发给WebDriver,由WebDriver 实际执⾏行行浏览器器的操作;
  4. WebDriver 可以看做是直接操作浏览器器的原⽣生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏 览器器对应的 WebDriver。
  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
  5. 可以免费学习!划重点!开源的!!!
  6. qq群号:691998057【暗号:csdn999

 

你可能不太理解Remote Server 是啥? WebDriver又是啥 ? 接下来我们把这几个关键术语进行解释。

关键字说明备注
Test Case(Client)编写的python代码当然它也支持其它语言,这里相当于客户端
Remote Server就是seleniumselenium里有个类叫WebDriver ,负责接收client端的请求,解析后转发给浏览器驱动。
WebDriver浏览器驱动文件,名称为:chromedriver.exe接受Remote Server请求,并请求操作浏览器
Web Browser浏览器

所以 ,以上代码中的这句driver = webdriver.Chrome() ,就已经启动了Remote Server ,而后的代码都将通过Remote Server解析后发送给浏览器驱动 。

2.常用方法介绍

以上代码中通过driver调用的方法都属于selenium的方法 ,其中它就是如下这些 。

以上除了find_element_by_id() 这个方法没有介绍外(单独介绍),代码中的方法都已提到 。

最后通过一张图来总结它的属性和方法 。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/1012331
推荐阅读
相关标签
  

闽ICP备14008679号