呕心沥血总结的Python自动化测试面试题
目录
1、自动化代码中,用到了哪些设计模式?
2、什么是断言( Assert) ?
3、什么是web自动化测试
4、什么是Selenium?
5、写出Selenium中你最熟悉的接口或类
6、元素定位类型有哪些?
7、Xpath是什么?
8、findElement()和findElements(方法有什么区别
9、登录按钮除了用click方法进行点击以外还有其他方式吗?
10、怎么提高Selenium脚本的执行速度
11、怎么对含有验证码的功能进行自动化测试的
12、怎么验证复选按钮是不是被选中
13、如何处理alert弹窗?
14、下拉菜单中如何去选择一个菜单项?
15、如何模拟浏览器的前进和后退、刷新操作
16、怎么获得当前页面的URL?
17、WebDriver的close()和quit(方法的区别是什么?
18、你觉得自动化测试用哪些缺陷
19、Web端功能自动化,如何实现(非input型上传)上传文件
20、遇到 这种class中间有空格的控件,如何通过class定位?
21、Selenium自动化,遇到 iframe 如何处理?
22、Web端功能自动化中,如何切换句柄。
23、测试中遇到 readonly 属性的控件,需要如何处理?简述一下思路
需求:给定一个只包含正整数且非空的数组,返回该数组中重复次数最多的前N个数字(返回结果按重复次数从多到少降序), 请用熟悉的语言实现该需求。10分钟内写出来
24、例如: passwd={"admin'":"123321","user1":" 123456"} 满足一下条件?
1、自动化代码中,用到了哪些设计模式?
- 单例设计模式
- 工厂模式
- PO设计模式
- 数据驱动模式
- 面向接口编程设计模式
2、什么是断言( Assert) ?
- 断言Assert用于在代码中验证实际结果是不是符合预期结果,
- 如果测试用例执行失败会抛出异常并提供断言日志
3、什么是web自动化测试
- Web自动化测试是从UI (用户界面)层面进行的自动化测试,
- 测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑。
4、什么是Selenium?
- Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试
5、写出Selenium中你最熟悉的接口或类
- WebDriver、InternetExplorerDriver、 FirefoxDriver、 ChromeDriver、 WebElement、WebDriverWait、 By
6、元素定位类型有哪些?
By类一共有8种元素定位方式,它们都是静态方法:
- By.id():
- By.name():
- By.tagName():
- By.className():
- By.cssSelector():
- By linkText():
- By partialLinkText():
- By.xpath():
7、Xpath是什么?
- 它是查找web页面元素的一种方式,相当于元素在dom中间的一个路径,可以采用绝对路径和相对路径的方式进行定位
- 它对于定义动态的页面元素有很大的帮助,同时也需要谨慎使用,因为如果页面结构发生变化,那么定位信息也可能需要变化。
8、findElement()和findElements(方法有什么区别
- 两个都是查找页面元素的方法
- findElement():查找一个页面元素,只会返回一个WebElement对象
- findElements() :查找页面上所有符合匹配的元素,返回元素集合
9、登录按钮除了用click方法进行点击以外还有其他方式吗?
- 还可以使用submit()方法,前提是input元素的type为submit
10、怎么提高Selenium脚本的执行速度
- 优化等待时间:使用 WebDriverWait 智能等待来代替线程等待 sleep 和 隐式等待 implicityWait
- 减少不必要的操作:如直接进入某页面代替经过一系列自动化操作进入某页面在服务器允许的情况下,使用多线程实现并发执行测试用例.
11、怎么对含有验证码的功能进行自动化测试的
- 1) :图像识别,技术难度大,效果不佳,不推荐
- 2) :屏蔽验证码,邀请开发处理,但在预生产环境或者生产环境不推荐
- 3) :万能验证码,使用一个复杂的其他人无法猜到的验证码
12、怎么验证复选按钮是不是被选中
- 可以使用元素的 isSelected() 方法,如果返回的是 true 则说明被选中,否则表明未被选中
13、如何处理alert弹窗?
- 处理 alert 弹窗首先需要先跳转到 alert 上,然后在点击确定或者取消按钮,
- Alert alert = driver.switchTo().alert(); //切换到alert
- alert.accept0; //确定
- alert.dismiss0; //取消
14、下拉菜单中如何去选择一个菜单项?
- 如果下拉菜单是select标签,使用方法: selectByValue() 或者 selectByIndex() 或者 selectByVisibleText() 即可
- 如果这个下拉菜单不是通过 select 标签创建,则直接通过 xpath 定位元素然后去点击选择
15、如何模拟浏览器的前进和后退、刷新操作
- driver.navigate().back()://后退
- driver. navigate().forward()://前进
- driver.navigate0.efresh()://刷新
16、怎么获得当前页面的URL?
- String url = driver.getCurrentUrl();
17、WebDriver的close()和quit(方法的区别是什么?
- close()方法只是关闭当前正在操作的窗口
- quit()是关闭了所有已经打开的窗口
18、你觉得自动化测试用哪些缺陷
- 成本比较大,而成效可能并不高
- 适合自动化测试的功能有限
- 某些功能操作相对复杂,比如验证码
- 维护成本高,一旦项目需求变更,自动化测试脚本和用例就需要改进
19、Web端功能自动化,如何实现(非input型上传)上传文件
- 与windows窗口进行交互,可以使用 pywin32库 实现。
20、遇到<d1 class="inf-bar clearfix"> 这种class中间有空格的控件,如何通过class定位?
- xpath定位:直接//d1 [@class="inf_bar clearfx"]
- css定位: d1.inf_bar.clearfix
21、Selenium自动化,遇到 iframe 如何处理?
- 使用switch_ to.frame 切换进 iframe 当中后 ,再去定位其中的元素并操作
22、Web端功能自动化中,如何切换句柄。
- 先获取所有窗口句柄,然后使用 switch_ to.window() 切换到指定窗口
23、测试中遇到 readonly 属性的控件,需要如何处理?简述一下思路
- 先修改关闭r eadonly 属性,然后再操作元素。
需求:给定一个只包含正整数且非空的数组,返回该数组中重复次数最多的前N个数字(返回结果按重复次数从多到少降序), 请用熟悉的语言实现该需求。10分钟内写出来
a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6]def get_datas(a):result = []data_dict = {}# 键值对:键:数字,值:在列表中的次数for item in set(a):data_dict[str(item)] = a.count(item)print(data_dict)# 将键值对按值(数字出现的次数)排序 ---从高到低排序res = sorted(data_dict.values(),reverse=True)for num in res:for key,value in data_dict.items():# 如果值在列表中不存在,则添加到结果列表中if num == value and key not in result:result.append(key)return resulta1 = get_datas(a
执行结果:
24、例如: passwd={"admin'":"123321","user1":" 123456"} 满足一下条件?
- 1、设计一个登陆程序,不同的用户名和对应密码存在一一个字典里面,输入正确的用户和密码去登陆,
- 2、首先输入用户名,如果用户名不存在或者为空,则一直提示输入正确的用户名
- 3、 当用户名正确的时候,提示去输入密码,如果密码跟用户名不对应,则提示密码错误请重新输入。
- 4、如果密码输入错误超过三次,中断程序运行。
- 5、当输入密码错误时,提示还有几次机会
- 6、用户名和密码都输入成功的时候, 提示登陆成功!
users = {"admin": "123456", "user1": " 123456"} count = 0def login():global countusername = input("请输入用户名:")if username == None or username == "":login()if username not in users.keys():print("用户名输入不正确,请重新输入用户名:")login()while (count < 3):passwd = input("请输入密码:")if passwd == users[username]:print("登录成功!!")count = 3else:count += 1print("密码输入错误,您还有{0}次机会。".format(3 - count))login()
呕心沥血总结的Python自动化测试面试题相关推荐
- python自动化测试面试题大全带答案_Python自动化测试笔试面试题精选
前言 随着行业的发展,编程能力逐渐成为软件测试从业人员的一项基本能力.因此在笔试和面试中常常会有一定量的编码题,主要考察以下几点. 基本编码能力及思维逻辑 基本数据结构(顺序表.链表.队列.栈.二叉树 ...
- python 自动化测试面试题及答案_自动化测试面试题及答案大全(1)
自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者 ...
- 30道python自动化测试面试题
文章目录 1.什么项目适合做自动化测试? 2.什么是 PO 模式? 3.PO 模式的封装原则有哪些? 4. Python 中 *args 和 **kwargs 的作用? 5.Python 中的垃圾回收 ...
- python自动化测试面试题(二)(持续更新)
接上一篇博文:https://blog.csdn.net/YZL40514131/article/details/125940126 21.selenium原理 a.当使用 Selenium 2.0 ...
- Python自动化测试面试题及答案(持续更新中)
https://www.cnblogs.com/ITester520/p/13477226.html 1.自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式 PO设计模式 数据驱动模式 面向接 ...
- python自动化测试面试题代码_Python自动化测试常见面试题(四)
一._ init _ _ 和 _ _ new _ _是什么? 1.1.概述 在python的面向对象中,利用new方法创建对象,然后把这个创建的对象传递到init函数中,以第一个参数进 1.2.详细描 ...
- python自动化测试面试题None is ==详解
在 Python 中,None表示常量 ,和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值,None的类型是NoneType None不代表空值与"" ...
- python自动化测试面试题代码_Python自动化测试面试题-编程篇
目录 前言 随着行业的发展,编程能力逐渐成为软件测试从业人员的一项基本能力.因此在笔试和面试中常常会有一定量的编码题,主要考察以下几点. 基本编码能力及思维逻辑 基本数据结构(顺序表.链表.队列.栈. ...
- 常见Python自动化测试面试题(含答案)建议收藏!
小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...
最新文章
- 优先发展智慧旅游与智慧交通领域
- 因贡献Linux社区被Linus关注,受公司10万期权奖励!酷派重回大众视野...
- 使用SAP Spartacus快速创建一个电商店铺网站
- oschina git服务, 如何生成并部署ssh key
- 如何用短信完成XSS?
- 发点牢骚,关于微软,关于WPF/E
- docker: Error response from daemon: Unknown runtime specified nvidia.
- 苹果支持WebRTC
- LCD液晶显示器的相关知识
- 高晓松自曝常被员工管 钉钉到底是反了老板还是员工?
- 【转租】【房东直租】【次渠东里一区、高层正规两居室、次卧】
- 浙江大学计算机科学与技术学院工业设计,浙江大学工业设计专业
- c++,全局函数做友名
- Java高级架构师之路核心知识整理
- 用Excel理解神经网络
- HTML报错 Malformed markup: Attribute “xxx“ appears more than once in element
- 看雪技术论坛加密与解密工具新年大礼包2007光盘
- 高职计算机奖金核算表怎么做,学校在岗人员工资核算系统设计及实现.docx
- 医学四大经典著作之一《黄帝内经》
- 台式电脑用网线可以上网,为什么把网线插到笔记本电脑上就连不上网的问题的解决