Selenium中有几种等待
隐形等待/智能等待 dr.implicitly_wait()
显性等待 WebDriverWait
强制等待 time.sleep()
Selenium中有哪些定位方式
8种
tag
三大基本属性 id/name/class_name
链接 link text/partial link text
高级 css selector/xpath
弹框怎么处理
4种弹框
div弹框、dom弹框,遮罩框 直接定位
alert框 dr.swich_to.alert().dismiss()
弹出新窗口 不用处理/也可以切换到新窗口,然后关闭
BasicAuth授权框 dr.get(http://用户名:密码@www…)
框架页面怎么处理 切换框架
上传下载怎么测试
上传 <input type=“file” style=“display: none"> send_keys()
下载 点击
flash/ 非标控件 桌面自动脚本生成exe
不确定时间的控件变化如何测试
webdriver wait
怎么对一个元素进行截图
elm.save_snapshot()
定位不到元素如何处理
sleep
观察页面 页面有有没有跳转,元素有没有出现,有没有弹出alert
元素是否在框架里
元素是否在新页面里
如何应对页面元素变动问题
使用PageObject
Selenium的遇到flash怎么解决
使用pywinauto或其他GUI自动化工具生成exe,配合Selenium执行。
如何去定位页面上动态加载的元素?
通过正常的业务流程触发元素加载,稍微等待后操作
直接执行JavaScript脚本使元素加载,进行操作
如何去定位属性动态变化的元素
使用其他不变的属性定位。
Webdriver可以用来做接口测试吗
不能
Selenium是否支持C/S模式
Selenium是一套浏览器自动化测试框架,支持B/S模式的应用,C/S模式仅支持部分已浏览器为核心的应用,一般情况下不支持C/S模式。
如何处理验证码
绕过
临时关闭
万能码
从数据库或日志中取
发接口登录绕过
半自动手动输入
图像识别
AI深度学习
花钱打码
框架封装
UI框架如何分层
你的框架是如何设计的
执行控制
测试套件
用例
业务流 页面对象组合,常用的业务流程
PageObject 页面对象、页面基础类
实用方法 数据读取 数据库操作 日志 发邮件 自己封装的定位方法
框架是怎么选择组合搭建的
基础引擎 unittest、pytest、robot、httprunner、自己写
数据选择 json/yaml、csv/excel、数据库、conf
配置文件 conf/ini py xml
登出了怎么处理?
增加登录的频次
执行用例前,验证状态
失败重试,加上登录
测试用例之间具有依赖处理
不建议有依赖
确保执行顺序
并发时以用例类suite为单位运行
webdriver异常怎么处理,怎么恢复场景和记录结果
记录日志,和当时的环境信息
实时截图及保留屏幕录像(如使用docker+zalenium)
用例失败后自动重跑(如使用pytest-rerunfailures)
使用subprocess运行,并记录子进程退出code
缓存上次执行结果
垃圾数据怎么处理
测试环境 执行sql
生产环境 请求接口或执行UI步骤
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取