selenium面试题

2023-10-27

今天有同学问到seleinum面试的时候会问到的问题,随便想了想,暂时纪录一下。欢迎大家在评论中提供更多问题。回复是我自己的答案,如果大家有什么好的看法,可以留言交流

  • 去哪儿的面试题

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

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

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

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

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

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

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

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

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

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

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

  • 用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

  • 答:此时我们要分析出不稳定的原因,然后有针对性的去解决问题。主要有以下几个方面 :
    一,网速问题:有的时候网页加载的比较慢,在程序执行的时候要操作的元素没有显示出来。这种情况比较常见,运行一次网速好的时候通过了,再运行一次,页面没有打开,就不通过了。为了提高稳定性,我们只能牺牲运行时间了,在经常检测失败的元素前加上等待时间,等要操作的元素出现之后再执行下面的操作。
    二,Selelnium的原因:Selenium1.0和2.0还是有区别的,有些儿函数在2.0下运行确实有时而有效,时面无效。如果mouseover()函数,就是这种情况, 我们需要避免使用这类的函数。
    三,多线程的时候,测试用例间相互影响。虽然多线程的时候运行速度比较快,但是如果用例之间的耦合性没有设计好,也会影响的,如果用例A先于用例B执行的时候,就会影响到用例B;反之则没有问题。这种情况,如果你的自动化测试工程打算多线程的时候,提前就要把测试用例测试的耦合度比较松,尽量没有任何关系,因为多线程的执行顺序是不受控制的。

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

  • 答:自动化测试用例的执行策略是要看自动化测试的目的,通常有如下几种策略:
    一,自动化测试用例是用来监控的,在此目的下,我们就把自动化测试用例设置成定时执行的,如果每五分钟或是一个小时执行一次,在jenkins上创建一个定时任务即可。
    二,必须回归的用例。有些儿测试用例,如BVT测试用例,我们在公司产品任何变动上线之前都需要回归执行。那我们就把测试用例设置成触发式执行,在jenkins上将我们的自动化测试任务绑定到开发的build任务上。当开发人员在仿真环境上部代码的时候,我们的自动化测试用例就会被触发执行。
    三,不需要经常执行的测试用例。像全量测试用例,我们没有必要一直回归执行,必竟还是有时间消耗的,有些非主要业务线也不需要时时回归。这类测试用例我们就采用人工执行,在jenkins创建一个任务,需要执行的时候人工去构建即可。

  • 什么是持续集成?

  • 自动化测试的时候是不是需要连接数据库做数据校验?

  • id,name,clas,x path, css selector这些属性,你最偏爱哪一种,为什么?

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

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

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

  • webdriver client的原理是什么?

  • webdriver的协议是什么?

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

  • 什么是page object设计模式?

  • 什么是page factory设计模式?

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

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

  • 什么是断言?

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

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

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

  • 自动化测试用例从哪里来?

  • 你觉得自动化测试最大的缺陷是什么?

  • 什么是分层测试?

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

有感于去哪儿的一道笔试题

题目如下

一、 UI自动化测试
1、 Qunar机票搜索场景
1) 访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发、到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索列表页。
2) 在列表页停留1分钟,至到页面上出现“搜索结束”。
3) 如果出现航班列表,对于出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表中会出现“第一程”、 “第二程”;对于没有出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表底部中会出现“报价范围”
4) 如果不出现航班列表,则页面会出现“该航线当前无可售航班”
2、 请使用maven创建java工程,引入Selenium框架,编写WebUI代码,实现上述人工操作和验证。要求能随机验证100个城市对的3个月内的任意搜索条件。

很多人可能第一步就卡住了,怎么选择7天以后的日期呢?

实际上很简单,直接在输入框里输入就好了。因为selenium支持的语言很多,这里就用js写一下。大家用selenium执行这段js就可以搞定了。

var date = new Date();
date.setDate(date.getDate() + 7);

var a_week_later = date.getFullYear() + '-' (date.getMonth()+1) + '-' + date.getDate();
$('input[name=fromDate]').val(a_week_later);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium面试题 的相关文章

随机推荐

  • python语法-函数多返回值、函数多种传参方式、匿名函数

    python语法 函数多返回值 函数多种传参方式 匿名函数 函数多返回值 函数多个返回值 def test return return 1 hello True x y z test return print f x x ny y nz z
  • angularJs中的发送请求例子

    http 发送请求 url http localhost 8080 teacher api login method post data obj success function data rootScope data data 返回结果
  • MacBookAir M1 遇到 nodesass不兼容问题的解决方案

    引言 在工作中接手了一个新项目 项目采用了nodesass 想尽方法让他跑起来 却抛出一个错误 Node Sass does not yet support your current environment OS X Unsupported
  • [1151]python连接 redis cluster集群

    使用pip search查看可安装的Redis模块版本 PS D code gt pip install pip search 安装pip search模块 PS D code gt pip search redis 利用pip searc
  • 从DEMO到完成项目过程的流程

    一 项目评审 认真看demo需求是关键 根据项目demo原型 将项目功能点细分 按每个功能点实现的大致期限 去估计整个项目的期限 一旦项目评估预期确定 需要严格按照预期来实现 决不能拖拉 二 项目实施中 项目实施中 尽量以实现demo功能为
  • QQ机器人相关指令实现-对接小夹子

    代码地址以及视频地址 代码地址 视频地址 实现小夹子网的对接 打开小夹子网了解如何对接 小夹子网 小夹子API对接文档 完成认证的功能 通过小夹子网编写相关常量信息 public interface ClipWebConstants 基础路
  • 判断链表有环并返回入环的第一个节点

    这个问题可以两部分组成 1 首席判读链表是否有环 2 有环的话 在公共点拆开 设在ptr1 ptr2 那么ptr2前进一步 ptr2 ptr2 gt next ptr1拆链表 ptr1 gt next NULL 此时 就有两个链表了 一个是
  • 9008小米售后权限账号_小米救砖教程

    今早在头条看到个微头条 大概意思是小米9有锁机只需要几百块 然后就有人在下边评论说 为什么要出这期解锁教程呢 是因为某些沙雕说小米9进9008刷机不需要售后权限 当然并没有在上图出现 我当场笑喷 首先普及一下 mi8及以上用9008刷机需要
  • Camera根据鼠标操作观察物体(移动,转动,滑动)

    领导安排了一个任务 客户需求根据鼠标操作可以更详细的观察物体 于是开始研究Camera的使用 客户要求 1 按住右键可以旋转观察物体 2 按住左键可以平移的上下拖动视角 3 滚动滑轮可以拉近距离 思路 需要移动的是摄像机而不是物体 因为物体
  • 猜数字游戏

    define CRT SECURE NO WARNINGS 1 include
  • 在 Spring 中 Mock RestTemplate

    如果我们程序中使用了 RestTemplate 进行 HTTP API 调用 通常在编写单元测试时 为了让测试可控 会将 RestTemlate 调用进行 mock 而不是进行真实的 HTTP API 调用 这里 我们将介绍两种 mock
  • 【华为OD机试 2023】 打印机队列(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • 【模板】高精度除低精度

    文章目录 1 数组 2 vector 推荐 1 数组 include
  • blender中的灯光和相机学习笔记

    目录 环境光 灯光属性 比如高反 编辑灯光基础 灯光基本属性 EV渲染器 点光 日光 面光 自发光 环境光 在渲染视图中 没有任何光时 物体只受环境光的影响 灯光属性 比如高反 在视图层属性中设置 灯光基础 1 四种灯光 点光 日光 聚光
  • 计算机视觉学习总结:基本的图像操作和处理(二)

    Numpy NumPy http www scipy org NumPy 是非常有名的 Python 科学计算工具包 其中 包含了大量有用的思想 比如数组对象 用来表示向量 矩阵 图像等 以及线性代数函数 1 图像数组表示 from PIL
  • 随想录(程序员的缺点)

    The original address of the document http blog csdn net feixiaoxing article details 7555315 声明 版权所有 欢迎转载 请勿用于商业用途 联系信箱 f
  • nvcc 编译并行程序时报错gcc: error trying to exec ‘cc1plus‘: execvp: 没有那个文件或目录

    一 nvcc 编译程序时报错 gcc error trying to exec cc1plus execvp 没有那个文件或目录 cc1plus 是gcc编译工具链中用到的一个程序 报错非常直白 就是说gcc在执行时找不到这个程序 二 问题
  • 北京航空航天计算机考研科目,2020考研北京航空航天大学计算机考研考试科目...

    2020考研 名校一直是考研学子的首选 北京航空航天大学作为全国名校 也是深受考研学子热衷追捧 那么下面启航小编就来介绍一下 2020考研 北京航空航天大学计算机考研科目 的相关内容 供考研学子参考 一起来了解一下吧 1 北京航空航天大学计
  • vue-admin 详细注释,必须手把手做项目系列之(二)

    文章将会自动保存至草稿 更新 麻雀虽小五脏俱全 项目地址 https github com whylisa vue admin step by step git 前言 这两天项目上线楼主要一大推的事要忙 要和产品撕逼 要和后台讨论一系列的问
  • selenium面试题

    今天有同学问到seleinum面试的时候会问到的问题 随便想了想 暂时纪录一下 欢迎大家在评论中提供更多问题 回复是我自己的答案 如果大家有什么好的看法 可以留言交流 去哪儿的面试题 selenium中如何判断元素是否存在 selenium