首页 > 编程语言 >《刚刚问世》系列初窥篇-Java+Playwright自动化测试-5-创建首个自动化脚本(详细教程)

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-5-创建首个自动化脚本(详细教程)

时间:2024-08-04 13:26:06浏览次数:11  
标签:Playwright 浏览器 宏哥 playwright 测试 自动化 Java page

 软件测试微信群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 

1.简介

前面几篇宏哥介绍了两种(java和maven)环境搭建和浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。

宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。断言的写法,就考验出一个测试工程师是否考虑全面,体现出你的用例编写水平。

2.测试用例

很多童鞋或者小伙伴们可能会有这样有个误区:自动化测试是不需要设计测试用例的。其实不然它也是需要设计测试用例,然后根据用例进行脚本的编写和断言,只不过是把用例以代码的形式体现出来,而机器恰好可以识别代码,将代码跑起来,其实就是在执行你的用例,只不过是由机器帮你自动执行。好了废话少说开始说说宏哥今天要做的测试是:打开百度,输入北京-宏哥搜索,验证打开链接有没有北京-宏哥博客园的链接。

测试用例:打开百度首页,搜索:北京-宏哥,然后检查搜索列表,有没有 北京-宏哥 博客园链接。后续文章为了避免不必要的麻烦和错误,宏哥都在maven搭建的环境中进行实战演示。

2.1步骤

1.启动浏览器

2.打开百度首页:http://www.baidu.com

3.判断这个页面是不是我们提前知道的页面

4.定位搜索输入框,记录下输入框元素的id定位表达式:#kw

5.定位搜索提交按钮(百度一下),获取id定位表达式:#su

6.在搜索输入框输入:北京-宏哥,点百度一下这个按钮

7.在搜索结果列表去判断是否存在北京-宏哥博客园这个链接

8.退出浏览器,结束测试

2.2代码设计

2.3参考代码
package com.bjhg.playwright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)
 * 
 * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试- 5-创建首个自动化脚本(详细教程)
 *
 * 2024年7月12日
 */
public class LaunchChrome {
    
    @SuppressWarnings("deprecation")
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
          //使用chromium浏览器,# 浏览器配置,设置以GUI模式启动Chrome浏览器(要查看浏览器UI,在启动浏览器时传递 headless=false 标志。您还可以使用 slowMo 来减慢执行速度。
          Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));
          //创建page
          Page page = browser.newPage();
          //浏览器打开百度
          page.navigate("https://www.baidu.com/");
          
          //判断title是不是 百度一下,你就知道
             
          try{
               String baidu_title = "百度一下,你就知道";
               assert baidu_title == page.title();
               System.out.println("Test Pass");
                 
          }catch(Exception e){
               e.printStackTrace();
          }
          //定位搜索输入框,输入北京-宏哥
          page.locator("#kw").type("北京-宏哥"); 
          
          //定位搜索提交按钮(百度一下)。点击
          page.locator("#su").click();
             
          //这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表。
          Locator ele_string=page.locator("//*[@id='1']/div/div[1]/h3/a");
             
          String ele_string1 = ele_string.innerText();
             
          System.out.println(ele_string1);
             
          try{
             
              if(ele_string1.equals("北京-宏哥 - 博客园")){
                 
                  System.out.println("Testing is successful!");
                    
              }
          }catch(Exception e){
              
              e.printStackTrace();
              
          }
          //关闭page
          page.close();
          //关闭browser
          browser.close();
        }
      }

}
2.4运行代码

1.运行代码,右键Run AS->java Application,就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

3.小结

3.1equals和==的区别

宏哥这里简单的说一下,更详细的你可以百度查一下。关于判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();

例:A字符串和B和字符串比较:
if(A.equals(B)){

}
返回true 或false.

String 的equals 方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能用简单的“==”判断。而使用equals比较两个对象的内容是否相等。

注意:equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。

好了,今天时间也不早了,首个Java+Playwright的自动化测试脚本就分享到这里,感谢你耐心地阅读!

 每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

标签:Playwright,浏览器,宏哥,playwright,测试,自动化,Java,page
From: https://blog.csdn.net/qq_23827149/article/details/140872283

相关文章

  • Java常用类和数据结构与算法
    1.其他常用类1.1.Math类java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值一般为double型。如果需要更加强大的数学运算能力,可以使用apachecommons下面的Math类库publicclassTestMath{publicstaticvoidmain(String[]args){S......
  • Java:Thread类
    Thread的常见构造方法Thread的常见属性ID是线程的唯一标识,不同线程不会重复名称是在使用各种调试工具时会用到的状态表示线程当前所处的情况优先级高的线程理论上来说更容易被调度到关于后台线程,需要记住:JVM会在一个进程的所有非后台线程结束后,才会结束运行是否存......
  • Java 文件 I/O流详解
    文件文件操作是Java开发中一个重要的组成部分,它允许开发者对文件进行读取,写入,创建,删除和修改等操作,文件操作的主要通过java.io包中的类来实现的,其中的File类更是文件操作的核心类File类的常用方法创建文件或目录文件创建使用createNewFile();可以创建一个新的空文......
  • JavaScript 中 arguments 对象与剩余参数的对比及转换
    引言在JavaScript中,处理函数调用时传递的不同数量的参数是一项常见的任务。为此,JavaScript提供了两种不同的方法:arguments对象和剩余参数(RestParameters)。本文将探讨这两种方法的区别,并介绍如何将arguments对象转换为真正的数组。arguments对象vs.剩余参数arguments......
  • JavaEE 第1节 认识多线程
    本节目标(全是重点,都必须掌握)1、了解什么是线程、多线程、进程以及他们之间的关系2、了解多线程的优势以及各种特性3、用Java掌握多种创建线程的方法一、线程、多线程、进程1、概念1.基本概念这三个名词的概念可以用一个餐馆的厨房和厨师来进行超级形象的比喻。想象一下......
  • Java简单宠物系统案例和代码实现(控制台输出 “推荐小白练习”)
    文章目录案例要求1.主程序入口2.用户注册3.用户登录4.宠物管理界面5.寄养宠物6.领养宠物7.查看宠物列表8.退出程序注意事项代码实现1.数据结构定义Account.javaPet.java2.功能实现Main.java案例要求1.主程序入口初始化:创建账号数组和宠物数组来......
  • Java计算机毕业设计酒店管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展和消费者对住宿体验要求的不断提升,酒店业面临着前所未有的挑战与机遇。传统的手工管理模式已难以满足现代酒店对效率、准确性和......
  • Java计算机毕业设计农商对接系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农业现代化和电子商务的迅猛发展,农产品销售的传统模式正面临深刻变革。传统农产品流通链条长、环节多、信息不对称等问题日益凸显,导致农产品销售......
  • Java计算机毕业设计旅游度假村管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,旅游度假村作为集休闲、度假、娱乐于一体的综合性旅游目的地,其管理与服务质量的提升成为行业关注的焦点。传统的人工管理模式已......
  • Java计算机毕业设计绿色生鲜(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着人们生活水平的提高和健康意识的增强,绿色生鲜食品逐渐成为现代消费者餐桌上的新宠。然而,传统生鲜市场面临着信息不对称、供应链冗长、品质难以保......