Selenium的java实践

我们为什么需要Selenium?Selenium简介Selenium+Java+Chrome环境搭建元素定位POM页面对象模型
摘要由CSDN通过智能技术生成

我们为什么需要Selenium?

  回想一下,我们每次打开测试环境网页的原因是什么?是为了出单造数据、以及验证老旧的菜单及按钮,还是为了验证新菜单及按钮的场景更多?我想大多数都是为了操作已有的功能吧。就我个人而言,经常是打开系统操作固定的功能:打开浏览器->输入测试的网址->输入用户名密码->切换角色-> loop 找到对应菜单->录入类似的模板数据->点击确定 end loop;

  如果是为了造数据,我们还可以通过整理sql脚本等方式,来代替繁琐的页面操作。但如果是为了回归测试呢,为了验证新代码上线后,旧的已有功能是否受到了影响呢?无论单元测试、接口测试等做的多好,但用户并操作的毕竟是页面,而不是代码,所以作为测试人员,总是需要亲自在系统操作一遍,才能放心的。

  既然对已有菜单及按钮的操作,每次都如此类似,那么我们是不是可以利用一些脚本、录屏等,让计算机按既定逻辑自动去点击操作呢?事实上市面上已有挺多这类技术实现手段的,有操作windows系统、操作移动端Andorid/IOS的,还有这篇博客要介绍的,操作Web浏览器的工具 - Selenium。借助这些工具,我们可以在各个平台上,实现操作的自动化,从而释放人力。

Selenium简介

  Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

  Selenium是一个工具包,并不是一个框架,所以它依赖其他语言去调用它,主流为使用Python或Java语言。在使用特定语言调用的同时,往往还会配合一个该语言的测试框架,如Java的TestNG框架,用于更好地管理测试数据、管理测试案例、产出测试报告、并行执行提升效率等等。

Selenium+Java+Chrome环境搭建

  Selenium的jar包只有一个,非常方便,在pom文件里增加如下依赖即可:

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

  如果是非maven工程,那只能自行前往Selenium官网,下载对应jar包并导入工程。

  除了Selenium的依赖包外,想要操作浏览器,还需要准备浏览器的驱动包,每个浏览器、不同版本间的包均不相同。以Chrome为例,我本地目前的浏览器版本是98.0.4758.102,则需要下载对应的驱动包,否则可能导致无法正常驱动。

  Chrome驱动包下载地址:http://chromedriver.storage.googleapis.com/index.html

  准备完毕后,工程结构如下:
在这里插入图片描述

  Chrome启动的测试代码为:

public class ChromeTest {
   

    @Test
    public void testChromeStartAndVisitBaidu()
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值