| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 频次最高的38道selenium面试题及答案(上) -> 正文阅读 |
|
[开发测试]频次最高的38道selenium面试题及答案(上) |
1、selenium的原理是什么? selenium的原理涉及到3个部分,分别是:
client其实并不知道浏览器是怎么工作的,但是driver知道,在selenium启动以后,driver其实充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver,driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client。这就是selenium工作的大致原理。 2、WebDriver提供哪些常见类型的驱动程序? WebDriver中常见驱动程序有(这部分建议在面试前查阅一下官网,做到实时同步更新):
3、webdriver的协议是什么? client与driver之间的约定,无论client是使用java实现还是c#实现,只要通过这个约定,client就可以准确的告诉drier它要做什么以及怎么做。 webdriver协议本身是http协议,数据传输使用json。 4、什么是page object设计模式? 简单来说就是用class去表示被测页面。在class中定义页面上的元素和一些该页面上专属的方法。 5、什么是page factory? Page Factory实际上是官方给出的java page object的工厂模式实现。 6、如何查找元素是否显示在屏幕上? WebDriver通过isDisplayed(), isSelected(), isEnabled(),这三种方法判断Web元素的可见性,这类方法将返回结果是布尔类型;Web元素可以是按钮,下拉框,复选框,单选按钮,标签等。 7、selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断。
8、selenium中hidden或者是display = none的元素是否可以定位到? 不可以,selenium不能定位不可见的元素。display=none的元素实际上是不可见元素。 9、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
10、selenium自动化页面元素找不到存在异常的原因?
11、如何去定位属性动态变化的元素? 属性动态变化是指该element没有固定的属性值,只能通过相对位置定位。 12、如何去定位页面上动态加载的元素? 触发动态事件,继而findelement;如果是动态菜单,需要一级一级的find。 13、如何提高selenium脚本的执行速度?
14、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
15、id,name,clas,xpath,css selector这些定位器,你最偏爱哪一种,为什么? xpath和css最为灵活。id、name等需要开发支持。 16、selenium为什么不推荐使用xpath定位? selenium使用xpath定位时采用遍历页面的方式,性能指标较差。另外xpath定位有通过绝对路径定位的,有时会不准确; 17、如何去定位页面上动态加载的元素? 显式等待。(显示等待?就是有条件的等待,隐式等待?就是无条件的等待,如sleep、driver.implicitly_wait()) 18、如何去定位属性动态变化的元素? 找出属性动态变化的规律,然后根据上下文生成动态属性。 19、如何通过子元素定位父元素? 通过父元素定位子元素,可以通过二次定位来找到。 点击链接加入群聊【软件测试交流群】:https://jq.qq.com/?_wv=1027&k=oIzwwn9E ? |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 6:32:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |