Selenium UI 自动化获取接口数据

1.前端向接口的传参;
2.捕获到接口返回的内容后,判断前端是否有按照接口返回的内容进行展示
针对第一点,我上家公司是做旅游的,旅客预订完人数、房间数后前端是需要向接口传拼房情况的,这里面大概有 10 几种情况,你如果每次都手工回归真的挺花时间的;针对第二点,上家公司应用在火车票退改签上了,根据上一个接口返回的退改签标志字段属性,检查后面页面的退改签标志是否正确,也是提升了不少效率。
好了,废话不多说,咱开始上干货~
这里给大家介绍 Slenium 的一个基友:browsermob-proxy,大家可以把它当做是一层代理,用来捕获 UI 传参和接口响应。
论坛里虽然也能搜到一两篇 browsermob-proxy 的帖子,但貌似都没讲到点子上,接下来我说说具体怎么做:
首先下载 python 依赖包

pip install browsermob-proxy
然后去 browsermob-proxy 的 github 官网下载对应 release 版本下的压缩包,官网地址:https://github.com/lightbody/browsermob-proxy

先启动 browsermob-proxy 的服务:

from browsermobproxy import Server

BMPserver = Server("D:/browsermob-proxy/browsermob-proxy-2.1.3/bin/browsermob-proxy.bat")
BMPserver.start()

把这个代理加到 driver 启动的配置中,这里要着重提一下,因为启动 browsermob-proxy 再用浏览器访问时,会出现让你加载证书,所以配置里面我们要加上忽略证书错误:

BMPproxy = BMPserver.create_proxy()
options = webdriver.ChromeOptions()
#忽略证书报错
options.add_argument(’–ignore-certificate-errors’)
options.add_argument(’–proxy-server={}’.format(BMPproxy.proxy))
chromedriver_dir = ‘D:/chormedriver/chromedriver’
driver = webdriver.Chrome(options=options, executable_path=chromedriver_dir)
用 browsermobproxy 捕获接口的内容:

BMPproxy.new_har(BMPurl,options={‘captureHeaders’: True,‘captureContent’: True})
这里 url 一定要传你接口的具体链接,不然会把所有请求的内容都取下来。
然而就算这样,捕获的 har 文件内容还是很多,它真是啥玩意儿都给你记下来
通过打断点调试看到 har 文件里这茫茫一大片的内容:

一开始我还傻乎乎字典去定位,反手就是给自己一巴掌;这不直接正则匹配就完事儿了

import re

result = str(BMPproxy.har)
res ='("mobile":".*?")'
mobile = re.findall(res,result)

虽然这个解决方案不算优秀,但也希望对大家有点帮助

转自:https://testerhome.com/topics/27207

Selenium UI 自动化获取接口数据相关推荐

  1. python selenium UI自动化解决验证码的4种方法

    测试环境 windows7+ firefox50+ geckodriver # firefox浏览器驱动 python3 selenium3 selenium UI自动化解决验证码的4种方法:去掉验证 ...

  2. Python 获取接口数据,解析JSON,写入文件

    Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...

  3. selenium UI自动化实战

    创建了一个测试群,大家相互总结资料分享最新得技术,目前群里面云集大量得大厂测开,问题基本都能解决 ,加我好友加入哦 总结得资料分为面经与技术文档总结 面试总结包含:linux.mysql.python ...

  4. UI自动化与接口自动化框架思维

    aototest(V1.0 以线上运行) maven+TestNG+selenium+Excel的UI自动化框架升级版本解剖图 项目简介 maven:是一个项目管理工具,主要用于项目构建,依赖管理,项 ...

  5. Python+Selenium UI自动化 - 调用JS代码

    当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码. 执行js有两种场景: 1.在页面上 ...

  6. 微信小程序之获取接口数据展示

    上篇说到获取编辑框文本,没看过去看看. 本片介绍简单的接口数据获取,并且展示,采取模拟数据,拉取数据方式方法.文章最后附上DEMO 本篇暂未考虑美化问题,只看功能.如图: 一.简单介绍 1> w ...

  7. Python Selenium UI自动化:滚动条滑动

    文章目录 问题 滑动至固定位置 Window 对象方法 - scrollTo js&python:滑动至固定位置 滑动至元素 元素对象方法 js&python:滑动至元素 问题 在UI ...

  8. Python Selenium UI自动化 ⽂件上传

      UI自动化进行文件上传,其实本质就是将所需上传的文件路径,传递给后端服务即可,至于读取文件的过程,其实开发人员已经在后端服务中完成了.所以我们要做的就是:拿到文件路径 -> 传出去.那么这里 ...

  9. Selenium UI自动化验证码:识别+输入

    思路:使用UI+接口的方式来查找验证码图片和获取验证码元素进行参数输入(用截图方式)(非图片类型验证码无法实现) 我们以访问当当网的注册界面来演示 1.通过selenium定位查找验证码并截图保留 1 ...

最新文章

  1. 框架依赖注入和普通依赖注入_依赖注入快速入门:它是什么,以及何时使用它...
  2. python 吧-做为IT人的你 趁年轻学点Python吧
  3. getTrackbarPos函数
  4. oracle spatial 数据导入_【转】 Oracle Spatial 基本操作
  5. ttysac1 java_基于Android的串口聊天室 (基于tiny4412) 一
  6. 去中心化存储项目Sia计划于2月初启动Sia基金会
  7. shell 脚本初习
  8. docker安装mangoDB
  9. opencv旋转摄像头
  10. linux同名文件会覆盖吗,linux下面覆盖文件,如何实现直接覆盖,不提示
  11. 基于stm32的简单车牌识别原理
  12. python拟合曲线_用python做曲线拟合
  13. OpenNLP 自然语言处理工具
  14. 2021110701-java前后台传递时间对象相差8个小时的时区问题
  15. ​2022年个税专项附加扣除,开始确认,​拿到软考证书即可抵扣
  16. GRUB2配置文件grub.cfg详解
  17. def文件的作用及相关操作
  18. 学会保护自己的眼睛!
  19. 用python的gui界面设计签名_Python GUI Tkinter简单实现个性签名设计
  20. 计算机自带的配置检测,Windows10系统自带电脑硬件设备检测工具的使用步骤

热门文章

  1. dbca -silent -responsefile 建库由于tmpfs太小报错ORA-27102: out of memory
  2. 权限控制之粗粒度与细粒度
  3. 小米集团的喜和忧:业绩下滑明显,市值再“腰斩”,造车是未来?
  4. 百度地图的边界/行政划分
  5. 【哈佛积极心理学笔记】第18讲 睡眠、触摸和爱情的重要性
  6. 1040 Longest Symmetric String
  7. 【深入探究C++虚函数表——从内存的角度】
  8. 学会快速装系统 图解硬盘分区软件Norton Ghost使用
  9. 卸载软件显示无效卸载控制文件解决方法
  10. (六)论文阅读 | 目标检测之DIoU