Selenium UI 自动化获取接口数据
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 自动化获取接口数据相关推荐
- python selenium UI自动化解决验证码的4种方法
测试环境 windows7+ firefox50+ geckodriver # firefox浏览器驱动 python3 selenium3 selenium UI自动化解决验证码的4种方法:去掉验证 ...
- Python 获取接口数据,解析JSON,写入文件
Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...
- selenium UI自动化实战
创建了一个测试群,大家相互总结资料分享最新得技术,目前群里面云集大量得大厂测开,问题基本都能解决 ,加我好友加入哦 总结得资料分为面经与技术文档总结 面试总结包含:linux.mysql.python ...
- UI自动化与接口自动化框架思维
aototest(V1.0 以线上运行) maven+TestNG+selenium+Excel的UI自动化框架升级版本解剖图 项目简介 maven:是一个项目管理工具,主要用于项目构建,依赖管理,项 ...
- Python+Selenium UI自动化 - 调用JS代码
当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码. 执行js有两种场景: 1.在页面上 ...
- 微信小程序之获取接口数据展示
上篇说到获取编辑框文本,没看过去看看. 本片介绍简单的接口数据获取,并且展示,采取模拟数据,拉取数据方式方法.文章最后附上DEMO 本篇暂未考虑美化问题,只看功能.如图: 一.简单介绍 1> w ...
- Python Selenium UI自动化:滚动条滑动
文章目录 问题 滑动至固定位置 Window 对象方法 - scrollTo js&python:滑动至固定位置 滑动至元素 元素对象方法 js&python:滑动至元素 问题 在UI ...
- Python Selenium UI自动化 ⽂件上传
UI自动化进行文件上传,其实本质就是将所需上传的文件路径,传递给后端服务即可,至于读取文件的过程,其实开发人员已经在后端服务中完成了.所以我们要做的就是:拿到文件路径 -> 传出去.那么这里 ...
- Selenium UI自动化验证码:识别+输入
思路:使用UI+接口的方式来查找验证码图片和获取验证码元素进行参数输入(用截图方式)(非图片类型验证码无法实现) 我们以访问当当网的注册界面来演示 1.通过selenium定位查找验证码并截图保留 1 ...
最新文章
- 框架依赖注入和普通依赖注入_依赖注入快速入门:它是什么,以及何时使用它...
- python 吧-做为IT人的你 趁年轻学点Python吧
- getTrackbarPos函数
- oracle spatial 数据导入_【转】 Oracle Spatial 基本操作
- ttysac1 java_基于Android的串口聊天室 (基于tiny4412) 一
- 去中心化存储项目Sia计划于2月初启动Sia基金会
- shell 脚本初习
- docker安装mangoDB
- opencv旋转摄像头
- linux同名文件会覆盖吗,linux下面覆盖文件,如何实现直接覆盖,不提示
- 基于stm32的简单车牌识别原理
- python拟合曲线_用python做曲线拟合
- OpenNLP 自然语言处理工具
- 2021110701-java前后台传递时间对象相差8个小时的时区问题
- ​2022年个税专项附加扣除,开始确认,​拿到软考证书即可抵扣
- GRUB2配置文件grub.cfg详解
- def文件的作用及相关操作
- 学会保护自己的眼睛!
- 用python的gui界面设计签名_Python GUI Tkinter简单实现个性签名设计
- 计算机自带的配置检测,Windows10系统自带电脑硬件设备检测工具的使用步骤
热门文章
- dbca -silent -responsefile 建库由于tmpfs太小报错ORA-27102: out of memory
- 权限控制之粗粒度与细粒度
- 小米集团的喜和忧:业绩下滑明显,市值再“腰斩”,造车是未来?
- 百度地图的边界/行政划分
- 【哈佛积极心理学笔记】第18讲 睡眠、触摸和爱情的重要性
- 1040 Longest Symmetric String
- 【深入探究C++虚函数表——从内存的角度】
- 学会快速装系统 图解硬盘分区软件Norton Ghost使用
- 卸载软件显示无效卸载控制文件解决方法
- (六)论文阅读 | 目标检测之DIoU