Java调用Selenium实现自动化测试

news2024/10/1 21:44:17

Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

Selenium简介

Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

Selenium特点

  • 开源、免费
  • 多浏览器支持:FireFox、Chrome、IE、Opera、Edge;
  • 多平台支持:Linux、Windows、MAC;
  • 多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
  • 对Web页面有良好的支持;
  • 简单(API 简单)、灵活(用开发语言驱动);
  • 支持分布式测试用例执行。

Selenium优势

  • 自动化测试:可以编写程序实现对系统自动化测试。
  • 爬虫:适用爬取js混淆加密的网页。

案例演示

下载驱动包

谷歌下载地址:
​​​http://chromedriver.storage.googleapis.com/index.html​​

说明:尽量下载与自己谷歌浏览器相近的版本,否则会出现不可描述的错误。

引入依赖

1.<dependency>
2.    <groupId>org.seleniumhq.selenium</groupId>
3.    <artifactId>selenium-java</artifactId>
4.    <version>4.0.0</version>
5.</dependency>
6.<!--   selenium 浏览器测试  不添加此依赖有可能会抛7.com.google.common.util.concurrent.SimpleTimeLimiter.create异常-->
8.<dependency>
9.    <groupId>com.google.guava</groupId>
10.    <artifactId>guava</artifactId>
11.    <version>RELEASE</version>
12.</dependency>

代码--"HelloWorld"

1.private WebDriver driver;
2.// 浏览器驱动路径
3.String browserDriverPath = "F:/IDEAWork/code-tools/webDriveSpider/chromedriver.exe";
4.
5.public static void main(String[] args) throws Exception {
6.    Spider app = new Spider();
7.    app.setUp("https://news.baidu.com/");
8.}
9.
10.public void setUp(String url) throws Exception {
11.    // 启动chrome浏览器
12.    System.setProperty("webdriver.chrome.driver", browserDriverPath);
13.   ChromeOptions options = new ChromeOptions();
14.    // 无浏览器模式
15.    options.addArguments("--no-sandbox");
16.    driver = new ChromeDriver(options);
17.    driver.manage().window().maximize();// 最大化浏览器
18.    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);// 设置操作超时时长,19.该设置是全局性的,即所有操作都最长等待30s
20.    driver.get(url);
21.}
  • 看看这效果,简直了!

爬虫方式代码

1.List<WebElement> webElements = driver.findElements(By.className("a3"));
2.for (WebElement webElement : webElements) {
3.    System.out.println(webElement.getText());
4.}

只供教学参考,切勿违规使用。结果如下:

文本框录入内容并跳转

1.WebElement webElement = driver.findElement(By.id("kw"));
2.webElement.sendKeys("新闻");
3.WebElement searchBouuton = driver.findElement(By.id("su"));
4.searchBouuton.click();

每天一个小知识,每天进步一点点!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring MVC 之Tomcat启动流程

从web.xml说起在开始 Spring MVC 的分析之前&#xff0c;先来聊一聊 Java 初学者接触的最多的 Java Web 基础。还记得我的第一个 Web 工程是由 Servlet、Velocity 和 Filter 来完成的&#xff0c;那时几乎所有人都是根据 Servlet、JSP 和 Filter 来编写自己的第一个 Hello Worl…

Java基本语法

目录 一、注释方式 1、单行注释 // 2、多行注释 /*...*/ 3、文档注释 /**....*/ 二、标识符和关键字 三、数据类型 拓展及面试题讲解 1、整数拓展 进制 二进制0b 八进制0 十六进制0x 2、字符拓展 编码Unicode表 2字节 0~65536 3、字符串拓展 4、布尔值拓展 一、注释方式…

可视化已编译Java类文件字节码的神器jclasslib

概述作为Java工程师的你曾被伤害过吗&#xff1f;你是否也遇到过这些问题&#xff1f;运行着的线上系统突然卡死&#xff0c;系统无法访问&#xff0c;甚至直接OOM想解决线上JVM GC问题&#xff0c;但却无从下手新项目上线&#xff0c;对各种JVM参数设置一脸茫然&#xff0c;直…

基于树莓派的智能家居项目整理

一、功能介绍 二、设计框图 三、实物展示 四、程序 一、功能介绍硬件&#xff1a;树莓派3B、LD3320语音识别模块、pi 摄像头、继电器组、小灯、火焰传感器、蜂鸣器、电 磁锁 项目框架&#xff1a; 采用了简单工厂模式的一个设计方式。稳定&#xff0c;拓展性…

2023美赛ABCDEF题思路+参考文献+代码

选题建议、ABCDEF题参考文献、ABCDEF题思路&#xff08;后续更新视频和代码&#xff09;、D题数据、数据集及处理方式已更新&#xff0c;其他日内更新。下文包含&#xff1a;2023年美国大学生数学建模竞赛&#xff08;以下简称美赛&#xff09;A - F题思路解析、选题建议、代码…

插件开发版|Authing 结合 APISIX 实现统一可配置 API 权限网关

当开发者在构建网站、移动设备或物联网应用程序时&#xff0c;API 网关作为微服务架构中不可或缺的控制组件&#xff0c;是流量的核心进出口。通过有效的权限管控&#xff0c;可以实现认证授权、监控分析等功能&#xff0c;提高 API 的安全性、可用性、拓展性以及优化 API 性能…

【郭东白架构课 模块一:生存法则】06|法则二:拼多多是如何通过洞察用户人性脱颖而出的?

你好&#xff0c;我是郭东白。上节课我们学习了怎么利用马斯洛理论去指导架构设计&#xff0c;尤其是该如何考虑和顺应研发人员的人性。 我们都知道&#xff0c;软件这个虚拟的存在最终是要服务于用户的&#xff0c;所以在软件设计的过程中也要考虑用户的人性。也就是说&#…

二进制中1的个数-剑指Offer-java位运算

一、题目描述编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为 汉明重量).&#xff09;。提示&#xff1a;请注意&#xff0c;在某些语言&#xff08;如 Java&…

chatGPT在软件测试中七大应用方式

chatGPT火得不能再火了&#x1f525;过去两周&#xff0c;国内chatGPT概念股很疯狂&#xff0c;不只是百度、讯飞&#xff0c;有些默默无闻且业绩亏损的公司股价大涨&#xff0c;有1-2个公司连续7个涨停板&#xff0c;不可思议&#xff01;上周&#xff0c;因为微软Bing发布新版…

postman-enterprise-API

Postman 是一个用于构建和使用 API 的 API 平台。Postman 简化了 API 生命周期的每个步骤并简化了协作&#xff0c;因此您可以更快地创建更好的 API。 API存储库 在一个中央平台上围绕您的所有 API 工件轻松存储、编目和协作。Postman 可以存储和管理 API 规范、文档、工作流配…

【Unity资源下载】POLYGON Dungeon Realms - Low Poly 3D Art by Synty

$149.99 Synty Studios 一个史诗般的低多边形资产包&#xff0c;包括人物、道具、武器和环境资产&#xff0c;用于创建一个以奇幻为主题的多边形风格游戏。 模块化的部分很容易在各种组合中拼凑起来。 包包含超过1,118个详细预制件。 主要特点 ◼ ◼ 完全模块化的地下城!包…

“消息驱动、事件驱动、流 ”的消息模型

文章目录背景消息驱动 Message-Driven事件驱动 Event-Driven流 Streaming事件规范标准简介&#xff1a; 本文旨在帮助大家对近期消息领域的高频词“消息驱动&#xff08;Message-Driven&#xff09;&#xff0c;事件驱动&#xff08;Event-Driven&#xff09;和流&#xff08;S…

基于Java+Swing+Mysql实现通讯录管理系统

基于JavaSwingMysql实现通讯录管理系统一、系统介绍二、功能展示1.用户登陆2.查询信息3.新增信息4.修改信息5.删除信息三、数据库四、其他系统实现五、获取源码一、系统介绍 1.登录系统 2.查询信息 3.新增信息 4.修改信息 5.删除信息 运行环境&#xff1a;idea/eclipse、mysq…

erupt框架Ueditor富文本编辑器图片上传出现405异常

最近在研究erupt框架(v1.11.2),当字段使用Ueditor富文本编辑器,在图片上传的时候出现405异常,接口不支持POST请求方式: 根据错误提示找到对应的源码,发现Handler方法只支持GET请求,而图片上传的时候是以POST方式发起请求的; 此时需要修改源码,用自定义的类覆盖jar包中同名的…

Qt系列:调用Edge浏览器示例

背景 需要解决以下几个问题 政府项目新浏览器兼容老系统ActiveX控件&#xff0c;Qt WebEngineView没有直接的实现方案&#xff0c;需要利用Qt的ActiveX兼容模块与浏览器往返多次交互Qt ActiveX未实现COM事件通知官方Win32示例存在滥用lambda函数的嫌疑&#xff0c;lambda函数…

2023年保健饮品行业分析:市场规模不断攀升,年度销额增长近140%

随着人们健康意识的不断增强&#xff0c;我国保健品市场需求持续增长&#xff0c;同时&#xff0c;保健饮品的市场规模也在不断攀升。 根据鲸参谋电商数据显示&#xff0c;2022年度&#xff0c;京东平台上保健饮品的年度销量超60万件&#xff0c;同比增长了约124%&#xff1b;该…

flutter-第1章-配置环境

flutter-第1章-配置环境 本文针对Windows系统。 一、安装Android Studio 从Android Studio官网下载最新版本&#xff0c;一直默认安装就行。 安装完成要下载SDK&#xff0c;可能会需要科学上网。 打开AS&#xff0c;随便创建一个新项目。 点击右上角的SDK Manager 找到SDK…

c#: NetTopologySuite凹凸多边形计算

环境&#xff1a; .net 6.0NetTopologySuite 2.5.0vs2022平面二维 一、夹角计算 1.1 计算向量与x轴正方向的夹角 方法: AngleUtility.Angle(Coordinate p) 下图上的t2即为p&#xff0c;之所以这么写是为了和AngleUtility.AngleBetweenOriented做比较 注意&#xff1a; 结果…

MySQL 服务正在启动.MySQL 服务无法启动.服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。总结较全 (已解决)

输入以下命令启动mysql&#xff1a; net start mysql出现以下错误提示&#xff1a; MySQL 服务正在启动 .MySQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。 出现这个问题的话&#xff0c;一般有几个情况&#xff1a; 一、MySQL安装文…

面试7分看能力,3分靠嘴皮,剩下90分就靠这份Java面试八股文

有句话说的好&#xff0c;面试中7分靠能力&#xff0c;3分靠嘴皮刚开始面试的时候&#xff0c;介绍项目一般都是凸显我们技能的重中之重&#xff0c;它对一次面试的成败可以说具有决定性作用&#xff0c;这就涉及到我们的表达能力了&#xff0c;有人说我其实水平都在线&#xf…