Python自动化测试【selenium面试题】

这篇具有很好参考价值的文章主要介绍了Python自动化测试【selenium面试题】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

expected_conditions模块提供了16种判断方法,以下方法是判断元素存在DOM中:
presence_of_element_located
""" An expectation for checking that an element is present on the DOM of a page. This does not necessarily mean that the element is visible.
判断元素存在DOM中,存在并不代表可见(也就是说可以是隐藏的,存在并不代表可以被点击)

"""

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


定位是可以定位到的,但是不能操作,可以判断元素is_displayed()
想点击的话,可以用js去掉dispalay=none的属性

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


WebDriverWait()与expected_conditions判断方法封装,循环判断页面元素出现后再操作,这样可以大大提高操作元素的成功率。

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


1.少用sleep,尽量不用implicitly_wait
2.多用显式等待方法
3.弄个性能好的电脑


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


跟第三问一样,封装显示等待与判断方法

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


1.集成到jenkins一键执行,可以手动执行,也可以定时执行

七、什么是持续集成?


1.持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。
每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。


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

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

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

1.css妥妥的,css语法简洁,定位快(xpath语法长,定位慢,还不稳定)

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


1. WebDriverWait()方法循环去查询是否元素加载出来了

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


1.先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)

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


1.这个不会等的,没加载完也可以下一步操作


十三、webdriver client的原理是什么?

[Webdriver实现原理](http://www.cnblogs.com/timsheng/archive/2012/06/12/2546957.html)
通过研究selenium-webdriver的源码,笔者发现其实webdriver的实现原理并不高深莫测无法揣度。在这里以webdriver ruby binding的firefox-webdriver实现为例,简单介绍一下webdriver的工作原理。
当测试脚本启动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步还是结束脚本;
这就是webdriver的工作流程,看起来很复杂实际上当了解了webdriver的实现原理后,理解上述问题应该比较简单。

webdriver是按照server – client的经典设计模式设计的。
server端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;
client端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被 测试浏览器,也就是remote server;remote
server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;

十四、webdriver的协议是什么?

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

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

1.通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法
2.用例层从页面层调用操作方法,写成用例
3.可以做到定位元素与脚本的分离


十七、什么是page factory设计模式?


创建一个BasePage类创建多个Page类,继承BasePage用例层调用Page类

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


1.select类里面提供的方法:select_by_value(“xxx”)
2.xpath的语法也可以定位到


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


1.js方法,直接让该元素置顶
2.要是点击后没高亮,就用js去修改属性吧(万能的js)

二十、什么是断言?


1.assert,判断测试结果与期望结果是否一致

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


1.大python威武,js也要略懂

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

1.不需要,page页只做元素抓取和操作方法


二十三、page object设计模式中,如何实现页面的跳转?


1.初始化driver参数,Page类传driver参数

二十四、自动化测试用例从哪里来?


1.自己写的
2.别人写的
(这问题有点虎,反正不是天上掉下来的)


二十五、你觉得自动化测试最大的缺陷是什么?


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

二十六、什么是分层测试?

1.数据层
2.接口层
3.UI层
自由发挥吧

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


1.不可以,webdriver是专门做web的UI自动化参数

总结:

从整个的面试题来看,难度还是挺大的,特别是脚本性能的优化这块,如果只是会简单的几个元素定位是完全无法着手优化的。
能提出这些问题出来的面试官也是有一定实力的。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 Python自动化测试【selenium面试题】,python,selenium,职场和发展,测试工具,单元测试,测试用例,功能测试

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

Python自动化测试【selenium面试题】,python,selenium,职场和发展,测试工具,单元测试,测试用例,功能测试

 文章来源地址https://www.toymoban.com/news/detail-807229.html

到了这里,关于Python自动化测试【selenium面试题】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自学Python+Selenium自动化测试

            俗话说的好,书读百遍不如手过一遍,而编程这东西是看书看视频一万遍都不如你自己多敲代码、写脑图、总结分享转换成自己的内容来的实在。         今天我就把最近学的(二) Selenium核心WebDriver API 简单总结一下,方便自己以后找出来看看。         一

    2024年02月05日
    浏览(51)
  • 【软件测试】python+selenium自动化测试

    一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 单元测试 java的单元测试框架是Junit,在这里不再赘述。 接口自动化 接口测试就是

    2023年04月09日
    浏览(94)
  • 【自动化测试】基于Selenium + Python的web自动化框架

    Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,p

    2024年02月07日
    浏览(78)
  • Python 自动化测试面试题目

    1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。 答: super 用于继承父类的方法、属性。 super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。 使用 super 可以提高代

    2024年02月04日
    浏览(45)
  • Python自动化测试之Selenium详解

    1.安装 完成自动化测试,需要配置三个东西。 selenium :pip就可以了 chrome :浏览器下载一个谷歌浏览器就行 chrome-driver :下载地址http://chromedriver.storage.googleapis.com/index.html 这里需要对应到自己的浏览器版本下载。 从浏览器上下载到本地后,本机mac上自动保存至Download/目录下

    2024年03月28日
    浏览(48)
  • Python + selenium 自动化测试框架详解

    项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里。 写通用的代码的。 其他3层想要的话,就可以直接调用。 例如: 读取测试数据的代码,读取配置信息的代码;截图的代码的,定位元素的代码等等 2.功能层(页面层) 功

    2024年02月03日
    浏览(51)
  • Python自动化测试利器selenium详解

    Selenium是一种常用的Web自动化测试工具,支持多种编程语言和多种浏览器,可以模拟用户的交互行为,自动化地执行测试用例和生成测试报告。Selenium基于浏览器驱动实现,结合多种定位元素的方法,可以实现各种复杂的Web应用程序的测试 自动化测试指软件测试的自动化,在

    2024年02月16日
    浏览(54)
  • selenium(4)-------自动化测试脚本(python)

    webdriverAPI 一)定位元素的方式,必问 1.1)id来定位元素,前提是元素必须具有id属性,因为有的元素是没有id的 1.2)name,元素必须有name,并且必须全局唯一 1.3)tagname,元素是一定有的,但是必须全局唯一才可以定位到元素 1.4)classname,class的名字,必须全局唯一 1.5)link_text,通过

    2024年02月02日
    浏览(56)
  • Python+Selenium自动化测试项目实战

    第 1 章 自动化测试 1.1、自动化测试介绍 自动化测试就是通过自动化测试工具帮我们打开浏览器,输入网址,输入账号密码登录,及登录后的操作,总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来,把时间和精力花到更好的地方去,

    2023年04月17日
    浏览(50)
  • python 自动化测试之Selenium 模块

    官网:https://www.selenium.dev/zh-cn/ 一、安装 二、声明浏览器 三、配置项 常用配置参数 其他配置项 四、常用方法 五、常用属性 switch_to属性 六、操作元素 定位元素 方法和属性 操作下拉框元素 七、模拟鼠标操作 八、键盘操作 八、延时等待 强制等待 隐式等待 显式等待 十、其

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包