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步骤
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:自动化测试老司机! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!