最新整理:Selenium自动化测试面试题

news2024/11/5 12:03:16

1.selenium中如何判断元素是否存在?

find_elements查找到的元素个数为0,find_element报错意味着元素不存在

2.如何判断元素是否出现?

判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现;另外一种是有这样的元素,但是是hidden状态

可以通过先判断是否存在,如果不存在返回false;如果存在再去判断是否displayed。

3.selenium中hidden或者是display = none的元素是否可以定位到?

可以定位,无法进行交互操作

4.selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

  • 添加元素智能等待时间 driver.implicitly_wait(30)

  • 通过显式等待,避免由于元素属性变化引起的失败

  • Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证我的每一个操作符合我的预期

5.如何提高selenium脚本的执行速度?

  • Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。

我们可以从以下几个方面来提高速度:

一,减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

二,中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

三,在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

四,配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。

6.用例在运行过程中经常会出现不稳定的情况,比如这次运行成功,下次可能运行失败,如何去提升用例的稳定性?

此时我们要分析出不稳定的原因,然后有针对性的去解决问题。主要有以下几个方面 :

一,网速问题:有的时候网页加载的比较慢,在程序执行的时候要操作的元素没有显示出来。这种情况比较常见,运行一次网速好的时候通过了,再运行一次,页面没有打开,就不通过了。为了提高稳定性,我们只能牺牲运行时间了,在经常检测失败的元素前加上等待时间,等要操作的元素出现之后再执行下面的操作。

二,Selelnium的原因:selenium版本差异,或当前Selenium版本缺陷导致,如果是版本差异导致,可能需要更新代码,如果是。

三,多线程的时候,测试用例间相互影响。虽然多线程的时候运行速度比较快,但是如果用例之间的耦合性没有设计好,也会影响的,如果用例A先于用例B执行的时 候,就会影响到用例B;反之则没有问题。这种情况,如果你的自动化测试工程打算多线程的时候,提前就要把测试用例测试的耦合度比较松,尽量没有任何关系,因为多线程的执行顺序是不受控制的。

7.id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?

  • css 、xpath 几乎所有的元素都可以定位到

8.如何去定位页面上动态加载的元素?

  • 通过显式等待,等待动态元素出现,而后马上进行操作

9.如何去定位属性动态变化的元素?

  • xpath或者css通过同级、父级、子级进行定位

10.点击链接以后,selenium是否会自动等待该页面加载完毕?

  • 会的

11.你的自动化用例的执行策略是什么?

1.自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;

2.有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;

3.有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。

12.webdriver client的原理是什么?

webdriver是按照server – client的经典设计模式设计的。以火狐浏览器为例:

当测试脚本启动firefox的时候,selenium-webdriver 会首先在新线程中启动firefox浏览器。如果测试脚本指定了firefox的profile,那么就以该profile启动,否则的话就新启1个profile,并启动firefox;

firefox一般是以-no-remote的方法启动,启动后selenium-webdriver会将firefox绑定到特定的端口,绑定完成后该firefox实例便作为webdriver的remote server存在;

客户端(也就是测试脚本)创建1个session,在该session中通过http请求向remote server发送restful的请求,remote server解析请求,完成相应操作并返回response;

客户端接受response,并分析其返回值以决定是转到第3步还是结束脚本;

13.webdriver的协议是什么?

The WebDriver Wire Protocol

14.启动浏览器的时候用到的是哪个webdriver协议?

http

15.怎样去选择一个下拉框中的value=xx的option?

二次定位,或者通过xpath直接根据value值定位

16.如何在定位元素后高亮元素(以调试为目的)?

通过JS重置元素属性,给定位的元素加背景、边框,然后在selenium中执行该JS语句

17.如果你进行自动化测试方案的选型,你会选择哪种语言,java,js,python还是ruby?

使用自己熟悉的语言,倾向于python

18.page object设置模式中,是否需要在page里定位的方法中加上断言?

-不需要,断言语句一般放在测试类中,页面类主要管理页面元素与操作

19.page object设计模式中,如何实现页面的跳转?

get方法跳转、click超链接实现页面跳转;

20.webdriver可以用来做接口测试吗?

不可以
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2232554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

业绩代码查询实战——php

一、一级代码显示职员 foreach($data_职员信息 as $key > $value){//$where_查询分类$where_查询通用;//$dat分类one $业绩提成->where($where_查询分类)->order("CreateDate desc")->select();if($value[haschildname]0 && $value[key] !"…

如何彻底删除gitbash中所有的命令记录、以及彻底删除Windows powerShell或者cmd中的所有命令记录

文章目录 1. 文章引言2. 彻底删除gitbash中所有的命令记录3. 彻底删除Windows powerShell或者cmd中的所有命令记录1. 文章引言 有时,我们使用外部电脑从gitbash中下载代码,假设使用history -c命令: 可以清除当前弹框的历史记录,但也无法彻底删除命令记录。打开gitbash后,通…

工作管理实战指南:利用Jira、Confluence等Atlassian工具打破信息孤岛,增强团队协作【含免费指南】

如果工作场所存在超级反派,其中之一可能会被命名为“信息孤岛”,因为它们能够对公司的生产力和协作造成严重破坏。当公司决定使用太多互不关联的工具来完成工作时,“信息孤岛”就会出现,导致团队需要耗费大量时间才能就某件事情达…

OceanBase V4.3.3,首个面向实时分析场景的GA版本发布

在10月23日举办的 OceanBase年度发布会 上,我们怀着激动之情,正式向大家宣布了 OceanBase 4.3.3 GA 版的正式发布,这也是OceanBase 为实时分析(AP)场景打造的首个GA版本。 2024 年初,我们推出了 4.3.0 版本…

最新最全面的JAVA面试题免费下载

面对求职市场的激烈竞争,掌握全面且深入的Java知识已成为每一位Java开发者必不可少的技能。《2023最新版Java面试八股文》是一份精心整理的面试准备资料,旨在帮助广大开发者系统复习,从容应对Java及相关技术栈的面试挑战。这份文档不仅汇聚了…

Spring Security 框架篇-深入了解 Spring Security 的授权核心功能(RBAC 权限模型、自定义异常处理器、校验权限方法)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 权限系统 1.1 引入 1.2 RBAC 权限模型 1.3 数据库设计 2.0 Spring Security 核心功能-授权 2.1 思路分析 2.2 编写 SQL 语句 2.3 将用户权限进行封装 2.4 获取用户…

博捷芯MIP专机:精密划片技术的革新者

BJX8160 精密划片机作为MINI行业的专用机,凭借其全自动上下料、高精度高速度um级无膜切割以及兼容多种上下料方式等特点,成为了工厂无人值守自动化的理想选择。同时,MIP专机作为博捷芯的独创产品,展现了博捷芯在精密划片机领域的领…

【嵌入式】STM32中的SPI通信

SPI是由摩托罗拉公司开发的一种通用数据总线,其中由四根通信线,支持总线挂载多设备(一主多从),是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…

Android 虚拟化框架(AVF)指南

Android 虚拟化框架(AVF)指南 一、项目介绍二、项目特色三、如何使用AVF四、总结 随着移动设备的普及和应用场景的多样化,安全性和隐私保护成为了移动操作系统的重要课题。Android作为全球最广泛使用的移动操作系统之一,一直在不断…

explain执行计划分析 ref_

这里写目录标题 什么是ExplainExplain命令扩展explain extendedexplain partitions 两点重要提示本文示例使用的数据库表Explain命令(关键字)explain简单示例explain结果列说明【id列】【select_type列】【table列】【type列】 【possible_keys列】【key列】【key_len列】【ref…

1.2 图像处理基本操作

在本实战中,我们将学习如何使用OpenCV进行基本的图像处理操作。首先,我们将通过cv2.imread()函数读取图像,并使用cv2.imshow()在窗口中显示它。接着,我们将探索如何通过cv2.imwrite()保存图像,并设置不同的参数以控制图…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集:制作UI系统的主菜单界面和选择存档界面

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作UI系统的主菜单界面 1.选择存档界面制作 2.代码的逻辑处理二、制作UI系统的选择存档界面 1.选择存档界面制作2.代码的逻辑处理总结 前言 hello大家好久…

Unity照片墙效果

Unity照片墙效果,如下效果展示 。 工程源码

华为HarmonyOS打造开放、合规的广告生态 - 贴片广告

场景介绍 贴片广告是一种在视频播放前、视频播放中或视频播放结束后插入的视频或图片广告。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告,通过AdRequestParams、AdOptions…

基于 Transformer 的语言模型

基于 Transformer 的语言模型 Transformer 是一类基于注意力机制(Attention)的模块化构建的神经网络结构。给定一个序列,Transformer 将一定数量的历史状态和当前状态同时输入,然后进行加权相加。对历史状态和当前状态进行“通盘…

【天线&运输】冲浪者检测系统源码&数据集全套:改进yolo11-DySnakeConv

改进yolo11-SCConv等200全套创新点大全:冲浪者检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.03 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视频可…

计算机毕业设计Hadoop+Spark大模型微博情感分析 微博舆情分析 微博爬虫 微博可视化 微博大数据分析 微博大数据 大数据毕业设计 Hive数据仓库

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

WPF中如何简单的使用MvvmLight创建一个项目并进行 增删改查

第一步:创建项目后下载如下两个NuGet程序包,然后删除删掉using Microsoft.Practices.ServiceLocation; 并且引入using CommonServiceLocator; 第二步:删除原来的XAML文件并创建如下的包结构然后创建一个在View文件夹中创建一个Main窗体 再将…

java项目之校园资料分享平台(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园资料分享平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 校园资料分享平台的主要…

Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、前后端分离安全处理方案

Lison <dreamlison163.com>, v1.0.0, 2024.06.01 Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、前后端分离安全处理方案 文章目录 Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、…