当前位置: 首页 > news >正文

Web自动化测试

目录

一、搜索功能

二、定位的方式

三、操作测试对象

四、屏幕截图

五、等待

六、弹窗


一、搜索功能

web自动化测试就是对一个网站进行自动测试和手工测试的步骤相同。

手工测试的步骤

1、打开浏览器

2、输入网址:https://www.baidu.com

3、找到百度的输入框,输入关键词

4、找到百度一下并点击

5、关闭浏览器

web自动化测试的步骤

1、安装驱动

在编写程序时,需要使用selenium方法来编写自动化脚本代码,所以需要引用selenium驱动。

        <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>

要启动浏览器,所以也要引用启动浏览器的引用

        <dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version></dependency>

2、编写代码

public class TestCase {void test() throws InterruptedException {//1、驱动打开浏览器WebDriverManager.chromedriver().setup();//方便查看操作步骤Thread.sleep(3000);//修改浏览器权限,允许访问所有链接ChromeOptions options=new ChromeOptions();options.addArguments("--remote-allow-origins=*");//创建浏览器对象WebDriver driver=new ChromeDriver(options);Thread.sleep(3000);//2、输入正确的网址driver.get("https://www.baidu.com");Thread.sleep(3000);//3、找到输入框driver.findElement(By.cssSelector("#kw")).sendKeys("搜索内容");Thread.sleep(3000);//4、找到百度一下按钮并点击driver.findElement(By.cssSelector("#su")).click();Thread.sleep(3000);//5、关闭浏览器driver.quit();}
}
public class TestRun {public static void main(String[] args) throws InterruptedException {TestCase testCase=new TestCase();testCase.test();}
}

二、定位的方式

定位页面上某个模块,可以使用cssSelector选择器和Xpath写法

//放入要定位的内容  
driver.findElement(By.cssSelector(""));
driver.findElement(By.xpath(""));

三、操作测试对象

操作对象

方法作用
click();点击
sendkeys();模拟键盘输入
clear();清除
getText();获取文本信息
getTitle();获取页面标题
getCurrentUrl();获取当前页面的URL

窗口设置

 //窗口最大化driver.manage().window().maximize();//窗口最小化driver.manage().window().minimize();//全屏窗口driver.manage().window().fullscreen();//手动设置窗口大小driver.manage().window().setSize(new Dimension(1,1));

窗口页面切换

//获取当前页面的句柄String handle= driver.getWindowHandle();//获取所有页面的句柄String allHandles= driver.getWindowHandles().toString();//切换句柄for (String handle:allHandles){if (handle!=curHandle){//切换driver.switchTo().window(handle);}}

四、屏幕截图

1、基础截图方法

//截屏方法
File srcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//把图片复制到目的地址
FileUtils.copyFile(srcFile,new File("my.png"));

2、进阶截屏方法

 void getScreenShot(String str) throws IOException {//创建年月加时间SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");//给年月加时间赋值String dirTime = sim1.format(System.currentTimeMillis());String fileTime = sim2.format(System.currentTimeMillis());//图片的位置String filename = "./src/test/image/" + dirTime + "/" + str + "-" + fileTime + ".png";System.out.println("filename:" + filename);//加上基础截屏的方法File srcFile =((TakesScreenshot)this.driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile, new File(filename));}

五、等待

等待分为强制等待,隐式等待和显式等待。

1、强制等待

Thread.sleep();

优点:写法简单

缺点:极大的增加了自动化的执行时间

2、隐式等待

隐式等待是一种智能等待,可以规定在查找元素时,在指定的时间内进行不断查找元素,如果找到了,则代码继续执行,直到超时没有找到元素就会报错。

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));//单位s

优点:智能等待,作用于全局

缺点:只能查找元素,要是有其他操作,就会强制等待,每次查找元素都会等待

3、显式等待

显式等待也是一种智能等待,在指定的时间范围内,只要满足操作条件,就会继续执行后续代码。

//要执行的操作必须是ExpectedConditions类下的操作
new WebDriverWait(driver,Duration.ofSeconds(3)).until();

显式等待,只作用于当前的条件上。

六、弹窗

弹窗分为警告弹窗,确认弹窗和提示弹窗。

弹窗不能定位,只能通过方法切换到弹窗上。

这三类弹窗,主要对应的操作为点击确认,点击取消,输入文本信息。

//先切换到弹窗上Alert alert=driver.switchTo().alert();//确认alert.accept();//取消alert.dismiss();//输入文本信息alert.sendKeys("hello");


http://www.mrgr.cn/news/34202.html

相关文章:

  • gitlab与jenkins
  • rust智能指针
  • Python自动化运维DevSecOps与安全自动化
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • 深度学习神经网络创新点方向(具体)
  • Elman 神经网络算法详解
  • RS-232,422,485应用详解
  • 全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验;
  • Java的cnum类型
  • 在Windows系统上安装的 Boost C++ 库
  • ???Ansible——Playbook基本功能
  • 基于flask常见trick——unicode进制编码绕过
  • 【Elasticsearch系列廿一】ES7 SQL 新特性
  • 阿里Arthas-Java诊断工具,基本操作和命令使用
  • 类与对象(中)
  • MySQL学习笔记(持续更新中)
  • 如何降低H5商城系统的开发成本
  • Find My化妆镜|苹果Find My技术与化妆镜结合,智能防丢,全球定位
  • 企微社群管理:构建高效沟通与活跃氛围的策略与实践
  • 昇思MindSpore进阶教程-参数
  • MATLAB在无线传感器网络设计中的应用与实践
  • 从零开始之AI面试小程序
  • LeetCode 20.有效的括号
  • Leetcode 543. 124. 二叉树的直径 树形dp C++实现
  • 输出Hate-C语言
  • 【Ambari自定义组件集成】Bigtop320集成Ranger实战