目录

基础

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篇的更多相关文章

  1. Python自动化测试面试题-接口篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  2. Python自动化测试面试题-经验篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  3. Python自动化测试面试题-Linux篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  4. Python自动化测试面试题-MySQL篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  5. Python自动化测试面试题-Redis篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  6. Python自动化测试面试题-编程篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  7. Python自动化测试面试题-性能篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  8. Python自动化测试面试题-用例设计篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  9. Python自动化测试面试题-Python基础篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

随机推荐

  1. 【Java】Debug断点调试常用技巧

    Debug操作技巧 Show Execution Point 将光标回到当前断点停顿的地方 Step Over 执行当前行代码,并将运行进度跳转到下一行. Step Into 进入到当前代码行的方法内 ...

  2. 关于win10 samba访问提示用户名和密码错误的原因

    排除掉linux上的配置错误,只需要做到以下两步就可以了: 1.win10系统运行secpol.msc 打开本地安全策略 2.安全策略->本地策略->安全选项 3.右侧找到 网络安全:LA ...

  3. 使用pdb进行Python调试

    调试应用有时是一个不受欢迎的工作,当你长期编码之后,只希望写的代码顺利运行.但是,很多情况下,我们需要学习一个新的语言功能或者实验检测新的方法,从而去理解其中运行的机制原理. 即使不考虑这样的场景,调 ...

  4. ES服务的搭建(八)

    看下图的淘宝页面,可以看到搜索有多个条件及搜索产品,并且支持多种排序方式,例如按价格:其实这块有个特点,就是不管你搜索哪个商品他都是有分类的,以及他对应的品牌,这两个是固定的,但其它参数不一定所有商品 ...

  5. 4、oracle表操作

    4.1.dml操作: 1.查看当前用户下所有的表: select * from user_tables; 2.查看某表的大小: select sum(bytes)/(1024*1024) as &qu ...

  6. .NET Core如何全局获取用户信息?

    前言 在增删改查中的增和改操作中,我们经常需要更新数据流的创建人和修改人,无论我们项目是基于DDD,抑或是简单仅有服务层,此时我们都需要获取用户信息,那么我们只能将用户标识从控制器层层传递到服务或仓储 ...

  7. as3.0 Flex 图像处理

    as3.0 Flex 图像处理 已知的一些图像处理,主要是得到颜色过滤矩阵,不完整,大家一起来补充. //颜色转换数组,所有的0都是可调值public var colorArray:Array = [ ...

  8. bootstrap validate 验证插件

    1.需要引入bootstrapValidator.min.js 2.在需要验证的控件中添加 class="form-control" 3.js中写验证的方法 $('#psasave ...

  9. noi 162 post office dp

    大致题意: 有v个村庄,每个村庄有各自的位置,且每个位置互不相同.现在要在村庄上设立P个邮局,使每个村庄到最近的邮局的距离之和最小. 分析: 定义状态d[i][j]表示前i个村庄,在这i个村庄中设立j ...

  10. 如何筛选CRM客户系统无效数据

    企业将各个渠道获得的大量数据导入CRM系统之后,要如何筛选CRM客户系统无效数据?销售人员应该将更多的时间用于发掘潜在客户,而不是浪费时间来检索CRM数据.Zoho CRM能够呈现最有价值的客户,让销 ...