Python自动化测试面试题-Selenium篇
发布时间:2024-04-23

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步骤

 

 

更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/