selenium⾃动化测试部分⾯试题
openssl怎么使用页⾯⾃动化测试问题汇总
1. 专业技术
1. 什么是Selenium
Selenium是⼀个开源的web⾃动化测试框架,主要是基于web UI的⾃动化测试。现在的版本,逐步增加了对移动端的⾃动化测试。Selenium⽀持多种语⾔进⾏开发⾃动化测试脚本,有Java,python,C#,Javascript等。Selenium⽀持跨浏览器平台测试。
1. Selenium是否⽀持桌⾯应⽤软件(客户端)的⾃动化测试。
Selenium不⽀持桌⾯软件的⾃动化测试,Selenium是根据⽹页元素的属性(ID,class,name,text)来定位元素,⽽其他桌⾯软件⾃动化测试⼯具是根据桌⾯元素的位置来定位元素,当然现在也有根据桌⾯元素的属性来定位的
1. Selenium是否⽀持⽤例的执⾏的引擎
引擎好⽐就是⼀个发动机。Selenium是没有关于测试⽤例和测试套件管理和执⾏的模块。我们需要借助第三⽅单元测试框架来实现⽤例管理和⽤例的执⾏。例如Java中有Junit或者testNG,Python中有unittest单元测试框架。
1. Seleinum是否有读取excel⽂件的库
没有,这⾥需要⽤到第三⽅⼯具。例如Apache POI插件
1. Selenium有哪些组件
最早的有Selenium IDE,IDE只⽀持安装在fiefox上的⼀个插件,⽀持录制⾃动化脚本。还有remote RC,和Grid 和webdriver。我们⼀般使⽤webdriver。
1. Selenium有什么限制或者缺陷
除了基于web的软件和mobile的程序,selenium不⽀持桌⾯软件⾃动化测试。
测试报告,⽤例管理只能依赖第三⽅插件,例如Junit/TestNG和unittest。由于它是免费的软件,所以没有供应商去提供⽀持和服务,有问题,只能求助selenium社区。还有⼀个就是,selenium⼊门门槛可能有点⾼,需要具备⼀定编程语⾔基础的才能玩转
1. 在selenium中,有哪些不同定位元素⽅法
ID/className/Name/LinkText/PartialLinkText/Xpath/CSS selector
1. 什么是imlicitlyWait
imlicitlyWait是隐式等待,⼀般在查元素的时候使⽤。例如,我设置⼀个查元素最⼤时间为10秒,使⽤了imlicitlyWait 后,如果第⼀次没有到元素,会在10秒之内不断循环去元素,直到超过10秒,报超时错误。
1. 什么是线程等待
有时候,我们需要强制设置线程等待,Thread.sleep(2000),driver这个实例,就是当前的线程。
1. 你能解释下Selenium这个框架吗?
2. 你写的测试脚本能在不同浏览器上运⾏吗,⽀持跨浏览器平台吗?
这⾥出现了跨浏览器平台的概念,就是写⼀个测试⽤例,可以在主流的⼏个浏览器跑起来。是的,我写的测试⽤例能在IE,⽕狐和⾕歌这三种浏览器上运⾏。主要是在windows平台上运⾏脚本,所以mac
的safari浏览器暂时没有写过。主要实现这个跨浏览器的思想就是,把浏览器类型写到配置⽂件,代码⾥写if语句去判断配置⽂件的浏览器的类型,来决定⽤什么浏览器去执⾏测试⽤例。
1. 关闭浏览器中quit和close的区别
两个都可以实现退出浏览器session功能,close是关闭你当前的tab页⾯,⽽quit是关闭全部浏览器tab页⾯,并退出浏览器session。知道这两个区别,我们就知道quit⼀般⽤在结束测试之后的操作,close⽤在执⾏⽤例过程中关闭某⼀个页⾯的操
作。
1. 在⽇历这种web 表单你是如何处理的?
⾸先要分析当前⽹页使⽤的⽇历插件的前端代码,看看能不能通过元素定位,点击⽇期实现,如果不能,可能需要借助javascript。还有些⽇历控件⼀个⽂本输⼊框,可以直接sendKeys()⽅法来实现传⼊⼀个时间的数据。
1. 如何处理下拉菜单?
通常我们也可以通过Click⽅法来点击下拉菜单⾥⾯的元素,还有⼀种⽅法,在Selenium中有⼀个类叫Select,⽀持这种下拉菜单交互的操作。
基本使⽤语法是这样的:
Select Se=new Select(element);
Se.selectByIndex(index);
Se.selectByvalue(value);
Se.selectByVisibleText(text);
1. 怎么验证勾选框是
enable/disabled/ checked/Unchecked/ displayed/ not displayed?
1. 你查元素遇到过在Frame⾥⾯吗?你是如何处理Frame⾥⾯元素定位的?
有时候我们知道元素定位表达式没有问题,但是还是提⽰no such element,那么我们就需要考虑这个元素是否在frame中。如果在,我们就需要从topwindow,通过swithcTo.Frame()⽅法来切换到⽬标frame中,可以通过frame的name和id和索引三种⽅法来定位frame。
1. 在selenium中如何处理多窗⼝?
这⾥需要⽤到swithTo⽅法。
需要获取当前浏览器多窗⼝句柄,然后根据判断跳转新句柄还是旧句柄
制作dockerfilevba shell命令1. 如何处理alert弹窗
我们常见的alert弹窗有两种:基于windows弹窗和基于web页⾯弹窗
我们知道,webdriver是能够处理alert弹窗的,Selenium提供了Alert这个接⼝。相关操作代码如下:
// 切换到Alert
Alert alert = driver.switchTo().alert();
// 点击弹窗上确定按钮
alert.accept();
// 点击弹窗的取消按钮
alert.dismiss()协作图
/
/ 获取弹窗上线上的⽂本⽂字内容
// 有些弹窗还⽀持⽂本输⼊,这个可以把要输⼊字符通过sendkeys⽅法输⼊
alert.sendkeys();
1. 举例⼀下你遇到过那些异常,在selenium⾃动化测试过程中
1. ElementNotSelectableException :元素不能选择异常python基础知识测试
基于嵌入式linux的项目2. ElementNotVisibleException :元素不可见异常
3. NoSuchAttributeException :没有这样属性异常
4. NoSuchElementException:没有该元素异常
5. NoSuchFrameException :没有该frame异常
6. TimeoutException :超时异常
7. Element not visible at this point  :在当前点元素不可见
1. findElement 和 FindElements有什么区别?
⾸先,两个都是查元素,都⽀持⼋⼤元素定位⽅法。findElement()得到的只有⼀个元素,如果根据提供的元素定位⽅式不到,会报noSuchElement异常。
findElements()返回的是⼀组元素,所以我们需要根据能够到⼀组元素的表达式去定位,返回⼀组元素我们可以放在集合⾥,这样我们就可以使⽤集合⾥⾯的迭代⽅法去遍历元素,拿到元素去做其他操作。
1. 如何获取页⾯标题,悬浮⽂本和错误⽂本,并验证?
标题,我们可以通过Title()⽅法来得到⼀个字符串,然后使⽤字符串的containts⽅法或者equals⽅法去进⾏断⾔。
悬浮⽂本(tooltip),⼀般是利⽤Actions类,然后⿏标悬停⽅法,然后通过getText()⽅法来得到这个tooltip字符串。
错误信息,直接把这个错误字段先进⾏定位,然后通过getText()⽅法拿到错误⽂本,主要的断⾔有包含,相等,不相等,不包含,以什么开头等。
1. 你是如何管理你的测试⽤例并执⾏?
写⽤例和管理并执⾏⽤例,我们都需要借助单元测试框架来实现,如果是Java语⾔⼀般有junit和TestNG,如果是python,常见的有unittest。
就你实际情况,说⼀下。例如我使⽤TestNG⽐较多,需要配置l⽂件来实现测试⽤例的执⾏。有时候需要配置多个l去实现不同的任务场景。再展开,可能问你⼀下testng框架的知识点。例如,⽅法依赖,⽤例执⾏优先级,数据源驱动等。
1. 如何确定动态加载的元素:
- xpath或者css通过同级、⽗级、⼦级进⾏定位
1. 介绍⼀下selenium
2.0
Selenium2.0 = Selenium1.0 + WebDriver(也就是说Selenium2.0合并了这两个项⽬)
Rc是在浏览器中运⾏js应⽤,使⽤浏览器内置的js翻译器翻译和执⾏selenese命令
WebDriver是通过原⽣浏览器⽀持或浏览器扩展来直接控制浏览器。针对各浏览器⽽开发,避免了js安全模型导致的限制;还利⽤操作系统及的调⽤,模拟⽤户输⼊;
1. 请说明selenium
2.0与
3.0的区别
Selenium 2.0 =Selenium 1.0+WebDriver
Selenium 3.0舍弃rc只有driver
1. 元素不到可能的原因有?
1.动态id定位不到元素
2.iframe原因定位不到元素
3.不在同⼀个frame⾥边查元素
4. xpath描述错误
5.点击速度过快页⾯没有加载出来就需要点击页⾯上的元素
6.firefox安全性强,不允许跨域调⽤出现报错

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。