10大web selenium自动化常见问题解答

在这里插入图片描述

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

自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分 析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚 本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试 的应用软件)并输出测试结果。

Q2 如何处理使用Selenium的Ajax控件?

假如一个文本框是一个Ajax控件,当我们输入一些文本时,它会显示自动建议的值。

处理这样的控件,需要在文本框中输入值之后,捕获字符串中的所有建议值;然后,分割字符串,取值就好了。

Q3 列举web自动化中常见的元素定位方式?

id:根据id来获取元素,返回单个元素,id值一般是唯一的;

name:根据元素的name属性定位;

tagName:根据元素的标签名定位;

className:根据元素的样式class值定位;

linkText:根据超链接的文本值定位;

partialLinkText:根据超链接的部分文本值定位;

cssSelector:css选择器定位;

xpath:通过元素的路径来定位;

Q4 如何模拟浏览器的前进和后退、刷新?

driver.navigate().back(); //后退
driver.navigate().forward();//前进
driver.navigate().refresh();//刷新

Q5 如何处理Selenium WebDriver中的警报/弹出窗口?

基于Web的警报弹出窗口。

1、WebDriver为用户提供了一种使用Alert界面处理这些弹出窗口的非常有效的方法。

2、void dismiss() - 一旦出现弹出窗口,dismiss()方法就会点击“Cancel”按钮。

3、void accept() - 只要弹出窗口出现,accept()方法就会点击“Ok”按钮。

4、String getText() - getText()方法返回警告框中显示的文本。

5、void sendKeys(String stringToSend) - sendKeys()方法将指定的字符串模式输入到警告框中。

基于Windows的警报弹出窗口。

1、处理基于windows的弹出窗口总是有点棘手,因为我们知道Selenium是一个自动化测试工具,它只支持Web应用程序测试,也就是说,它不支持基于Windows的应用程序,窗口警报就是其中之一。

2、Robot class是基于Java的实用程序,它模拟键盘和鼠标操作,并可以有效地用于处理基于windows的弹出与键盘事件的帮助。

3、KeyPress和KkeyRelease方法可以分别模拟用户按下和释放键盘上某个键的操作。

Q6 如何提高UI自动化脚本的稳定性?

1、尽量用相对路径的xpath表达式;

2、查找元素优先用显示等待;

3、用例与用例之间尽量避免产生依赖,用例可以独立执行;

4、用例执行结束后对测试场景进行还原,避免影响其他用例的执行;

5、脚本执行失败后加入重试机制,提升用例的稳定性;

6、尽量保证单独的测试环境,避免其他的测试同步进行;

Q7 PO模式的封装原则有哪些?

  • 公共方法表示页面提供的一个服务,比如我们可以把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个register 的方法;
  • 尽量不要暴露页面的内部,比如一个HTML的页面还有一个页面的上下结构;
  • 在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离;
  • PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一个元素属性;
  • 整个 PO 不需要封装整个页面的行为,用到什么逻辑就封装什么;
  • 对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid。

Q8 隐式等待与显式等待有什么区别?

隐式等待是设置的全局等待,分为

1、页面加载超时等待 ;

2、页面元素加载超时;

3、异步脚本超时;

如果是页面元素超时,设置等待时间,是对页面中的所有元素设置加载时间。隐式等待是其实可以理解成在规定的时间范围内,浏览器在不停地刷新页面,直到找到相关元素或者时间结束。

显式等待只是用于特定搜索的一个计时器。它的可扩展性更强,你可以设置它来等待任何条件。通常情况下,可以使用一些预先构建的条件来等待元素变得可点击,可见,不可见等,或者只是编写适合需求的条件。

Q9 如何设计UI自动化测试用例?

UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:

  • 优先选取覆盖产品核心功能的用例;
  • 从成本考量,不要选择流程过于复杂的用例;
  • 选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
  • 优先实现正向的测试用例,反向用例一般情况复杂、数量多

Q10 WebDriver 中获取屏幕截图?

通过selenium提供的TakesScreenshot和OutputType完成屏幕截图。

// 获取截屏File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);// 将截屏保存到指位置FileUtils.copyFile(scrFile, new File(“C:\CaptureScreenshot\sample.jpg”))

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【伤心的辣条】免费获取~

送上一句话:

世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。

我的学习交流群:902061117 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

好文推荐:

阿里小黑叹息:越来越多的年轻人从职场撤退了?

Python简单?先来40道基础面试题测试下

App公共测试用例梳理

从一名开发人员转做测试的一些感悟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值