python selenium自动化面试_selenium 自动化测试部分面试题

页面自动化测试问题汇总

专业技术什么是Selenium

Selenium是一个开源的web自动化测试框架,主要是基于web UI的自动化测试。现在的版本,逐步增加了对移动端的自动化测试。Selenium支持多种语言进行开发自动化测试脚本,有Java,python,C#,Javascript等。Selenium支持跨浏览器平台测试。

Selenium是否支持桌面应用软件(客户端)的自动化测试。

Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性(ID,class,name,text)来定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据桌面元素的属性来定位的

Selenium是否支持用例的执行的引擎

引擎好比就是一个发动机。Selenium是没有关于测试用例和测试套件管理和执行的模块。我们需要借助第三方单元测试框架来实现用例管理和用例的执行。例如Java中有Junit或者testNG,Python中有unittest单元测试框架。

Seleinum是否有读取excel文件的库

没有,这里需要用到第三方工具。例如Apache POI插件

Selenium有哪些组件

最早的有Selenium IDE,IDE只支持安装在fiefox上的一个插件,支持录制自动化脚本。还有remote RC,和Grid 和webdriver。我们一般使用webdriver。

Selenium有什么限制或者缺陷

除了基于web的软件和mobile的程序,selenium不支持桌面软件自动化测试。

测试报告,用例管理只能依赖第三方插件,例如Junit/TestNG和unittest。由于它是免费的软件,所以没有供应商去提供支持和服务,有问题,只能求助selenium社区。还有一个就是,selenium入门门槛可能有点高,需要具备一定编程语言基础的才能玩转

在selenium中,有哪些不同定位元素方法

ID/className/Name/LinkText/PartialLinkText/Xpath/CSS selector

什么是imlicitlyWait

imlicitlyWait是隐式等待,一般在查找元素的时候使用。例如,我设置一个查找元素最大时间为10秒,使用了imlicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,直到超过10秒,报超时错误。

什么是线程等待

有时候,我们需要强制设置线程等待,Thread.sleep(2000),driver这个实例,就是当前的线程。

你能解释下Selenium这个框架吗?

你写的测试脚本能在不同浏览器上运行吗,支持跨浏览器平台吗?

这里出现了跨浏览器平台的概念,就是写一个测试用例,可以在主流的几个浏览器跑起来。 是的,我写的测试用例能在IE,火狐和谷歌这三种浏览器上运行。主要是在windows平台上运行脚本,所以mac的safari浏览器暂时没有写过。主要实现这个跨浏览器的思想就是,把浏览器类型写到配置文件,代码里写if语句去判断配置文件的浏览器的类型,来决定用什么浏览器去执行测试用例。

关闭浏览器中quit和close的区别

两个都可以实现退出浏览器session功能,close是关闭你当前的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之后的操作,close用在执行用例过程中关闭某一个页面的操作。

在日历这种web 表单你是如何处理的?

首先要分析当前网页使用的日历插件的前端代码,看看能不能通过元素定位,点击日期实现,如果不能,可能需要借助javascript。还有些日历控件一个文本输入框,可以直接sendKeys()方法来实现传入一个时间的数据。

如何处理下拉菜单?

通常我们也可以通过Click方法来点击下拉菜单里面的元素,还有一种方法,在Selenium中有一个类叫Select,支持这种下拉菜单交互的操作。

基本使用语法是这样的:

Select Se=new Select(element);

Se.selectByIndex(index);

Se.selectByvalue(value);

Se.selectByVisibleText(text);

怎么验证勾选框是

enable/disabled/ checked/Unchecked/ displayed/ not displayed?

你查找元素遇到过在Frame里面吗?你是如何处理Frame里面元素定位的?

有时候我们知道元素定位表达式没有问题,但是还是提示no such element,那么我们就需要考虑这个元素是否在frame中。如果在,我们就需要从topwindow,通过swithcTo.Frame()方法来切换到目标frame中,可以通过frame的name和id和索引三种方法来定位frame。

在selenium中如何处理多窗口?

这里需要用到swithTo方法。

需要获取当前浏览器多窗口句柄,然后根据判断跳转新句柄还是旧句柄

如何处理alert弹窗

我们常见的alert弹窗有两种:基于windows弹窗和基于web页面弹窗

我们知道,webdriver是能够处理alert弹窗的,Selenium提供了Alert这个接口。相关操作代码如下:

// 切换到Alert

Alert alert = driver.switchTo().alert();

// 点击弹窗上确定按钮

alert.accept();

// 点击弹窗的取消按钮

alert.dismiss()

// 获取弹窗上线上的文本文字内容

alert.getText();

// 有些弹窗还支持文本输入,这个可以把要输入字符通过sendkeys方法输入

alert.sendkeys();

举例一下你遇到过那些异常,在selenium自动化测试过程中

1. ElementNotSelectableException :元素不能选择异常

2. ElementNotVisibleException :元素不可见异常

3. NoSuchAttributeException :没有这样属性异常

4. NoSuchElementException:没有该元素异常

5. NoSuchFrameException :没有该frame异常

6. TimeoutException : 超时异常

7. Element not visible at this point  :在当前点元素不可见

findElement 和 FindElements有什么区别?

首先,两个都是查找元素,都支持八大元素定位方法。findElement()得到的只有一个元素,如果根据提供的元素定位方式找不到,会报noSuchElement异常。

findElements()返回的是一组元素,所以我们需要根据能够找到一组元素的表达式去定位,返回一组元素我们可以放在集合里,这样我们就可以使用集合里面的迭代方法去遍历元素,拿到元素去做其他操作。

如何获取页面标题,悬浮文本和错误文本,并验证?

标题,我们可以通过driver.getTitle()方法来得到一个字符串,然后使用字符串的containts方法或者equals方法去进行断言。

悬浮文本(tooltip),一般是利用Actions类,然后鼠标悬停方法,然后通过getText()方法来得到这个tooltip字符串。

错误信息,直接把这个错误字段先进行定位,然后通过getText()方法拿到错误文本,主要的断言有包含,相等,不相等,不包含,以什么开头等。

你是如何管理你的测试用例并执行?

写用例和管理并执行用例,我们都需要借助单元测试框架来实现,如果是Java语言一般有junit和TestNG,如果是python,常见的有unittest。

就你实际情况,说一下。例如我使用TestNG比较多,需要配置testng.xml文件来实现测试用例的执行。有时候需要配置多个testng.xml去实现不同的任务场景。再展开,可能问你一下testng框架的知识点。例如,方法依赖,用例执行优先级,数据源驱动等。

如何确定动态加载的元素:

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

介绍一下selenium2.0

Selenium2.0 = Selenium1.0 + WebDriver(也就是说Selenium2.0合并了这两个项目)

Rc是在浏览器中运行js应用,使用浏览器内置的js翻译器翻译和执行selenese命令

WebDriver是通过原生浏览器支持或浏览器扩展来直接控制浏览器。针对各浏览器而开发,避免了js安全模型导致的限制;还利用操作系统及的调用,模拟用户输入;

请说明selenium 2.0与3.0的区别

Selenium 2.0 =Selenium 1.0+WebDriver

Selenium 3.0舍弃rc只有driver

元素找不到可能的原因有?

1.动态id定位不到元素

2.iframe原因定位不到元素

3.不在同一个frame里边查找元素

4. xpath描述错误

5.点击速度过快 页面没有加载出来就需要点击页面上的元素

6.firefox安全性强,不允许跨域调用出现报错

<p class="study_crow sub-content" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 24px 0px 45px; padding: 0px; font-size: 16px; color: #313d54; white-space: pre-line; word-break: break-all; background-color: #ffffff;">【学习前提】 1. 具备python3语言基础 【学习人群】 1. 手工测试人员学习UI自动化测试技能 2. 开发人员转岗测试开发岗位 3. 如具有丰富的自动化测经验,本课程可能并不满足你</p> <p class="sub-title" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 17px; font-weight: bold; line-height: 1; background-color: #ffffff;">学习计划:</p> <p class="study_plan sub-content" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 24px 0px 45px; padding: 0px; font-size: 16px; color: #313d54; white-space: pre-line; word-break: break-all; background-color: #ffffff;">学习计划: 1. 本视频系列与《从零开始学selenium自动化测试(基于python)》书籍相配套,两者结合起来学习,效果更加; 2. 每天2小时,1.5周即可学习完毕; 3. 结合课程(书籍中提供的)软件,多练习,多思考</p> <p class="sub-title" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 17px; font-weight: bold; line-height: 1; background-color: #ffffff;">课程目标:</p> <p class="course_target sub-content" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 24px 0px 45px; padding: 0px; font-size: 16px; color: #313d54; white-space: pre-line; word-break: break-all; background-color: #ffffff;">旨在将学习者培养为UI(Selenium3)自动化测试(Wedriver,POM)、单元测试Unitest、Pytest。</p> <p class="course_target sub-content" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 24px 0px 45px; padding: 0px; font-size: 16px; color: #313d54; white-space: pre-line; word-break: break-all; background-color: #ffffff;"><img src="https://img-bss.csdnimg.cn/202101170303599528.jpg" alt="" /></p> <p class="course_target sub-content" style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 24px 0px 45px; padding: 0px; font-size: 16px; color: #313d54; white-space: pre-line; word-break: break-all; background-color: #ffffff;"><img src="https://img-bss.csdnimg.cn/202101170839065282.png" alt="" /><img src="https://img-bss.csdnimg.cn/202101170839261419.png" alt="" /><img src="https://img-bss.csdnimg.cn/202101170839367788.png" alt="" /><img src="https://img-bss.csdnimg.cn/202101170840004702.png" alt="" /></p>
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页