自动化测试API【软件测试】

自动化测试

selenium

1. 为什么使用selenium?

  1. 开源免费
  2. 支持多浏览器
  3. 支持多系统
  4. 支持多语言编程
  5. 提供了丰富的web自动化测试API

2. API

  1. 查找页面元素

find Element()
find Elements()

  1. 元素定位的方式

xpath
selector
通常情况下,不需要手动来编写xpath或者selector,选择页面元素后复制粘贴
自动化里要求元素的定位必须是唯一,如果复制出来的元素在页面不唯一,需要手动的进行小范围的修改

  1. 常见的元素的操作
    对元素的操作前提:能够找到元素
    • 输入文本 sendKeys(仅适用于文本字段和内容可编辑的元素,如果反向操作代码也不会报错)
      在这里插入图片描述

    • 点击 click
      在这里插入图片描述

    • 提交 submit(通过回车键提交)selenium官方不推荐使用submit
      仅适用于表单元素

    • 清除 clear
      频繁测试输入框是否可以重复输入

    • 获取文本 getText
      通过getText()方法获取不到百度页面 按钮上的”百度一下“文字,这是为什么?
      区分文本属性
      在这里插入图片描述

    • 获取属性对应的值 getAttribute

    • 获取标题和URL getTitle getCurrentUrl

System.out.println(driver.getTitle());
System.out.println(driver.getCurrentUrl());
  1. 窗口

    • 窗口大小的设置:最大化、最小化、全屏窗口、手动设置窗口大小
      在这里插入图片描述
      全屏的时候,电脑会提示esc退出,但是窗口最大化不会

    • 窗口的切换
      问题1:打开百度首页,点击图片超链接进入到百度图片首页,获取百度图片页面的”百度一下“按钮,结果报错?
      在这里插入图片描述
      当浏览器每次打开一个标签页的时候,会自动的给每个标签页进行标识(句柄
      在这里插入图片描述
      问题2:那么怎么区分哪个是百度首页的句柄?哪个是百度图片首页的句柄?
      在这里插入图片描述
      问题3:如何跳转到百度首页的句柄?
      在这里插入图片描述
      问题4:当我们打开了好几个窗口,怎么切换呢?
      自动化基本没有这样的场景~

    • 屏幕截图
      在这里插入图片描述
      问题1:当代码执行到查找结果页的元素时候,页面还没有加载完全。
      程序执行的速度 和 页面渲染的速度 谁快?(当然是程序执行速度)
      所以当程序执行的时候我们需要在代码里面添加等待机制
      问题2:当文件名为固定格式(已经存在重名的文件),程序多次执行生成的图片文件会被同名覆盖
      这时可以将文件名的命名添加动态数据(时间戳)

  2. 执行脚本
    executeScript() 参数:js代码

  3. 等待

    • 强制等待(程序阻塞进行)Thread.sleep()
      会用到,但是自动化里不能用的特别多。每一个自动化方法就是一个自动化测试用例。只能接受十几秒或者几分钟之内

    • 隐式等待
      在这里插入图片描述
      隐式等待会作用于driver的整个生命周期,会一直轮询判断元素是否存在,如果不存在就等待设置好的时间里不断的进行轮询,直到元素能够被找到。

    • 显示等待

WebDriverWait(WebDriver,Duration)

在这里插入图片描述

  1. 浏览器的操作
    浏览器的前进、后退、刷新
    在这里插入图片描述

  2. 弹窗
    处理弹窗的步骤:
    (1)将driver对象作用到弹窗上(切换到弹窗)driver.switchTo.alert()
    (2)选择确认(accept())/取消(dismiss())(提示弹窗多了一个输入文本sendKeys()
    虽然警告弹窗只有确认按钮,注意:accept和dismiss都能处理
    虽然警告弹窗和确认弹窗都没有输入文本的地方,但如果要执行alert.sendKeys代码也不会报错~~

  3. 选择器
    选项的选择方式
    (1)根据文本来选择

// 先创建选择框对象
Select select = new Select(ele);
// 根据文本来选择
select.selectByVisibleText("UPS Next Day Air ⇒ $12.51");

(2)根据属性值来选择

// 根据属性值来选择
select.selectByValue("12.51");

(3)根据序号来选择
序号是从0开始

// 根据序号来选择
select.selectByIndex(1);
  1. 文件上传
sendKeys("文件路径 + 文件")
  1. 浏览器参数
    实际在工作中,测试人员将自动化部署在机器上自动的执行,测试人员不会每次都一直盯着自动化执行的过程,而是直接查看自动化执行的结果。
    • 无头模式
      在这里插入图片描述
      浏览器的参数设置需要在创建浏览器对象之前
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值