zoukankan      html  css  js  c++  java
  • 【Selenium学习】常见面试题

    转自:http://www.imdsx.cn/

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

    expected_conditions模块提供了多种校验方式,我常用的一种是presence_of_element_located(判断某个元素是否被加到了dom树里,并不代表该元素一定可见,如果定位到就返回WebElement)。如果有需要的话,我还可以自定义expected_conditions方法。

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

    可以定位到,但是不能操作,为了显示我们会的更多,我们可以说通过is_displayed()方法来判断显示或不显示,如果想点击的话,可以用js去掉dispalay=none的属性。

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

    通过wait模块中的WebDriverWait类提供的until或until_not方法与expected_conditions结合使用,进行二次封装。

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

    1.少用sleep,尽量不用implicitly_wait

    2.多用显式等待方法

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

    通过wait模块中的WebDriverWait类提供的until或until_not方法与expected_conditions结合使用,进行二次封装。

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

    UI自动化不需要、接口测试会需要

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

    我喜欢用css selector  css语法简洁,定位快(xpath语法长,定位慢,还不稳定)

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

    通过wait模块中的WebDriverWait类提供的until循环的去判断是否出现了要用的元素

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

    先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位

    十、webdriver client的原理是什么?

    当测试脚本启动Chrome的时候,selenium-webdriver 会首先在新线程中启动Chrome浏览器。启动后selenium-webdriver会将Chrome绑定到特定的端口,绑定完成后该chrome实例便作为webdriver的remote server存在;客户端(也就是测试脚本)创建1个会话,在该session中通过http请求向remote server发送请求,remote server解析请求,完成相应操作并返回response;客户端接受response,并分析其返回值以决定是转到第3步还是结束脚本;

    webdriver是按照server – client的经典设计模式设计的。

    server端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client(脚本)发送请求并做出相应;

    client端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被测试浏览器,也就是remote server;remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;

    十一、什么是page object设计模式?

    1.把每个页面当成一个页面对象,对页面的可操作功能进行封装

    2.测试case通过调用页面对象的方式来完成case的编写

    3.可以做到UI操作与case编写进行分离

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

    1、通过两次click可以做到

    2、通过执行js脚本做到(前提是你能写出js代码)

    3、selenium提供了select模块,我们可以通过select模块中的方法定位,比如 index_of、value、text

    4、还可以通过xpath定位,但是有时会出错误

    十三、如何在定位元素后高亮元素

    通过js更改元素属性

    十四、UI自动化最大的缺陷是什么?

    需求变动大的时候,维护成本大

    十五、webdriver可以用来做接口测试吗?

    不可以、webdriver是专门做webUI自动化的。

    作者:gtea 博客地址:https://www.cnblogs.com/gtea
  • 相关阅读:
    有关绑定没有数据显示的问题
    asp.net 打印控件之报表
    dockercompose安装,yml文件配置
    Docker日志文件切割以及大小配置
    查看Docker容器日志大小
    CSS控制 video 隐藏、显示进度条、播放按钮、全屏按钮
    根据url 下载文件
    自定义指令,按钮防连点
    iframe 内嵌页面以及传参
    C# 判断网站是否能访问或者断链
  • 原文地址:https://www.cnblogs.com/gtea/p/12715837.html
Copyright © 2011-2022 走看看