Python自动化测试面试题-Selenium篇
目录
- Python自动化测试面试题-经验篇
- Python自动化测试面试题-用例设计篇
- Python自动化测试面试题-Linux篇
- Python自动化测试面试题-MySQL篇
- Python自动化测试面试题-Redis篇
- Python自动化测试面试题-Python基础篇
- Python自动化测试面试题-算法篇
- Python自动化测试面试题-接口篇
- Python自动化测试面试题-Selenium篇
- Python自动化测试面试题-性能篇
基础
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步骤
Python自动化测试面试题-Selenium篇的更多相关文章
- Python自动化测试面试题-接口篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-经验篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-Linux篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-MySQL篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-Redis篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-编程篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-性能篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-用例设计篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-Python基础篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
随机推荐
- Java抽象类、继承及多态和适配器的实现
Java继承 方法重写是Java语言多态的特性,必须满足以下条件 在子类中,方法名称与父类方法名称完全相同 方法的参数个数和类型完全相同,返回类型完全相同 方法的访问修饰符访问级别不低于父类同名方法的 ...
- 【转】【NX二次开发】UFUN进度中断,单击停止可中断此操作
队长的博客: https://www.cnblogs.com/nxopen2018/p/13174207.html 显示此对话框,点击可中断操作: 用到的ufun函数: UF_ABORT_ask_fl ...
- 【SQLite】教程06-SQLite表操作
创建表: CREATE TABLE 语句用于在任何给定的数据库创建一个新表.命名表.定义列.定义每一列的数据类型 查看表: 详细查看表: 重命名表: 删除表: 创建表并添加7条记录(第七条记录用了第二 ...
- 安装ogg软件报错:[INS-75012]Sofware Location specified is already an existing Oracle
1.安装ogg软件时报错: [INS-75012]Sofware Location specified is already an existing Oracle 2.根据报错,是说我们选择ogg软件 ...
- 最好的Kubernetes客户端Java库fabric8io,快来自定义你的操作
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 Kubernetes Java客户端 对于Kubernetes集群的操作,官方提供了命令行工具kubectl,这也是我 ...
- 百炼3752:走迷宫--栈实现dfs
3752:走迷宫 总时间限制: 1000ms 内存限制: 65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走.给定一个迷宫,求从左上角走到右下角最 ...
- .NET Core添加日志插件
二. 首先控制器的方法中写: private readonly ILogger<fluueController> _logger; public fluueController(ILogg ...
- 使用.net6 WebApplication打造最小API
.net6在preview4时给我们带来了一个新的API:WebApplication,通过这个API我们可以打造更小的轻量级API服务.今天我们来尝试一下如何使用WebApplication设计一个 ...
- PO,VO,BO,POJO,DAO的区别
基本概念 PO:persistant object (持久化对象),可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不 ...
- SpringMvc实现批量删除,使用post传值一直报404错误
Ajax结合SpringMVC实现批量删除信息,在前台使用post向后台传递要删除的id的集合额时候,一直报404错误, 前台post传值的源码如下: 了解一下: (1)第二行的rows为前面得到的一 ...