![](https://img-blog.csdnimg.cn/direct/1dfd5a7a963b4830acf9db5cef135bd6.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
selenium
文章平均质量分 82
介绍selenium的基础操作以及实际项目应用
测试开发Kevin
05年开始从事测试工作,擅长性能测试、安全渗透测试、UI自动化测试,接口测试,白盒测试,测开后端,熟悉Java和Python。
展开
-
一文读懂UI自动化测试三种核心实现原理:Native、Webdriver和CDP
相信80%的UI自动化测试工程师在进行岗位面试的时候都会重点讲解自己会使用哪些工具,例如cypress 、selenium 、playwright等等。其实这只是初级段位,如果大家想谈得再高大上一些,就可以谈谈这些工具与浏览器talk的原理了,绝对会得到面试官的重视!目前主流主动化测试工具与浏览器沟通的原理主要包括:Native、Webdriver以及CDP,使用这三种方式的典型代表工具分别是:cypress 、selenium 和playwright。今天我就对此进行总结:原创 2023-04-03 15:58:58 · 874 阅读 · 0 评论 -
绝对干货!自动化测试PO设计模式的进阶实现(附源码),适合想提升编码能力的测试同学
本文阅读的前提:同学们知道如何进行Selenium自动化测试并了解什么是PO设计模式!对于代码基础较弱的测试同学希望多读几次文章并上手操作,这篇文章看懂后,大家的编码能力就会进步了!代码哪里不懂欢迎留言!原创 2023-12-18 14:51:20 · 431 阅读 · 0 评论 -
面试自动化测试架构时必须知道的事儿
当面试的时候,面试官要问你对自动化测试架构的理解时,该如何回答呢?其实这是一个很“大”的问题,面试者需要对如下内容进行阐述,主要包括:什么是架构、什么是架构设计思想、自动化架构设计带来的好处、有哪些核心类库以及他们的作用、结合你的实际工作谈谈遇到的架构使用问题。在这里我概述一下对于这几个问题的核心回答思路。1.什么是架构软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接.原创 2020-11-03 09:04:50 · 320 阅读 · 0 评论 -
入门自动化测试必须知道的核心知识点
自动化测试概念自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。好处自动化测试可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在更全面的用例设计和新功能的测试上;自动化测试可以大幅提升回归测试的效率;自动化测试适合在非工作时间执行测试,工作时间分析失败用例;自动化原创 2020-10-30 15:05:33 · 355 阅读 · 0 评论 -
自动化测试架构设计必会知识点——对核心业务进行封装复用(附Java源码)
随着UI自动化测试工具可选性越来越多,工具也越来越稳定,前几年关于自动化测试架构设计的概念逐渐淡化,但是做自动化测试最重要的两点—— PO设计模式和核心业务的封装复用大家还是必须掌握的原创 2023-12-23 14:58:11 · 1021 阅读 · 0 评论 -
Windows、Android、IOS、Web自动化工具选择策略
Windows平台中应用UI自动化测试解决方案AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silktest或者UFT都是不错的选择,遗憾的是二者都需要购买产品license。Web应用UI自动化测试解决方案选择Selenium即可,无需考虑其他方案Android应用UI自动化测试解决方案选择Appium即可,Appium使用Android系统的UIAutomator框架来操控Android应原创 2020-10-30 15:10:49 · 202 阅读 · 0 评论 -
详解UI自动化测试辅助利器:Sikuli
序言如果你在UI自动化测试中遇到如下问题,那么本文将会给你带来帮助:做web自动化测试时,由于个别无法识别的元素而Block自动化测试进度。苦恼于使用python脚本而无法调用sikuli来完成UI元素识别。定义Sikuli是由MIT(麻省理工学院)研究团队发布的一种图形化编程技术,使用Sikuli你只需要会写HelloWorld这种最基本的编程技能即可,用Sikuli不需要去写出一行行复杂的代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。Sikuli官网:http:原创 2020-11-05 11:13:10 · 1290 阅读 · 0 评论 -
献给想提升编码能力的测试人员,一步步教大家上手Java自动化测试架构设计
文章中每一个重要的知识点都有更为详细的链接文章进行深度解读。文章有点长,建议大家收藏慢慢消化,相信认真阅读过文章的同学一定会有非常大的收获!再次强调,测试同学会编码是刚需,自动化测试是tester入门编码的最佳实践,没有之一!再次强调,测试同学会编码是刚需,自动化测试是tester入门编码的最佳实践,没有之一!再次强调,测试同学会编码是刚需,自动化测试是tester入门编码的最佳实践,没有之一!原创 2023-12-29 16:08:49 · 1286 阅读 · 0 评论 -
一文读懂自动化测试模型的演化过程
介绍本文对自动化测试中的四种基础模型:线性模型、模块化驱动测试、数据驱动测试、关键字驱动测试进行了详细介绍,分析了各个模型的优势和劣势。让读者清晰的了解这四种模型的演化过程。线性模型通过录制或者编写应用程序的操作步骤产生相应的线性脚本,每个测试脚本相对独立,且不产生其他依赖与调用,这是自动化测试初期的表现形式。优势每一个脚本都是完整且独立的。所以,任何一个测试用例脚本拿出来都可以单独执行。劣势测试用例的开发与维护成本很高。开发成本高:测试用例之间可能会存在重复的操作,需要为每原创 2020-11-03 09:23:42 · 291 阅读 · 0 评论 -
自动化测试中自定义断言的实现方法
断言定义熟悉单元测试的同学都知道在测试用例中,执行完测试用例后,通过断言(assert)判断测试结果是pass还是fail。不同的单元测试框架都提供了断言机制,我们这里以python为例进行说明。Python中的断言类型丰富,最常用的是基础断言和集合断言。基础断言包括的核心方法如下所示,主要功能是对两个值进行比较。集合断言包括的核心方法如下所示,主要功能是对多个值进行比较。自定义断言基础编码我们可以使用 ‘==’来判断两个对象的值是否相等,进而打造我们自己的断言函数。核心..原创 2020-11-05 11:18:16 · 1126 阅读 · 2 评论 -
详解maven-surefire-plugin在自动化测试中的应用
定义maven-surefire-plugin是一个用于mvn生命周期的测试阶段的插件(本文假设读者已经掌握了Maven相关知识点),可以通过一些参数设置方便的在testNG或junit下对测试阶段进行自定义。在实际工作中我们可以利用该插件指定运行的测试用例,并通过多线程的方式来运行用例,更为方便的是它还可以控制重新运行失败的测试用例的次数,这为持续集成过程中的代码测试工作带来了极大方便!在pom.xml配置方式这里以配置junit为例,最简单的配置方式就是只声明插件。<plugin&原创 2020-11-04 11:21:20 · 2359 阅读 · 0 评论 -
告诉您自动化测试架构的设计思路以及必须掌握的两点内容
不同的框架会有不同的实现表达形式,也会提供不同的额外功能来满足不同的测试需求,但是灵魂的东西都是一样的,总结起来就是以下四点:约定测试用例的编写规则;校验用例通过与否的方法(断言);批量运行用例通过测试报告查看测试结果;原创 2023-12-25 17:32:58 · 1257 阅读 · 0 评论 -
干货!详解自动化测试用例设计与管理的通用策略(基于TestNg)
自动化测试的用例设计通用策略我们在做自动化测试时,是需要对用例进行管理的,比较常用的方案是(以java为例)一个project对应一个产品; 一个package对应产品中的一个模块; 一个class对应模块中的一个场景; 一个测试方法对应场景中的一个测试点; 最后,通过suite,定义组织要执行的class。如下图所示,TestNGDemo定义为一个产品、com.my.case1、com.my.case2和com.my.case3代表产品中的3个模块,而MyCase1、MyCase2等等6原创 2021-05-14 09:37:14 · 845 阅读 · 3 评论 -
自动化测试效率提升方案
本文注重自动化测试用例并行方案的设计,忽略了具体代码实现的细节。代码实现细节大家利用网络资源可以轻松搜索到相关内容!目前业界主流提升测试效率的方案如下:1.自动化测试脚本并行运行;2.编写自定义类库解决自动化api无法提供的功能或者对工具提供的api进行二次封装,核心就是增强脚本健壮性;自动化脚本执行完毕后,自动发送测试报告给相关责任人,使其第一时间了解自动化测试结果;自动化测试提升关于自动化测试中编写脚本和结果确认的效率提升,往往都需要大量的编码工作,核心就是两点:1.增强原创 2020-11-06 11:01:45 · 4024 阅读 · 0 评论 -
五分钟理解什么是自动化测试架构设计
自动化测试常见的问题如下:1)产品UI经常变化,导致测试脚本不能复用。(2)测试脚本不够健壮,导致脚本回放时,测试脚本本身经常出错。(3)网络延迟,数据加载延迟造成测试脚本失败。(4)识别对象的ID可读性差,导致测试脚本的可读性差。(5)录制的测试代码过于庞大而且应变性差,导致测试脚本的复用性差。(6)测试环境、user、user密码等常用信息的变更需要在脚本中修改,增加了测试脚本出错的风险。(7)生成的测试报告不能满足需求。自动化架构设计的核心就是解决上述问题!自动化...原创 2020-11-06 10:51:35 · 293 阅读 · 0 评论 -
一文搞定Java和Python在Selenium3中的应用
本文用同一个实例来演示如何编写python 和java代码的selenium实战文章,读者可以通过这篇文章了解到selenium是什么、如何使用katalon recorder录制脚本、如何搭建Selenium环境以及如何使用python或者java编写selenium脚本。文章有一点长,但是请相信我,文章真的很实用,如果你想上手Selenium自动化测试,她一定会帮到你!无论你的web项目编码使用的是java还是python,看这篇文章就够了!Selenium概述Selenium 是用于测试Web原创 2020-11-03 09:25:00 · 498 阅读 · 0 评论 -
Selenium进阶——使用ChromeDevTools协议编写自己的ChromeDriver
ChromeDevTools协议简称CDP,它允许对Chromium,Chrome和其他基于Blink的浏览器进行检测,探测,调试和配置。许多现有项目目前使用该协议。 Chrome的开发者工具就是使用此协议,该团队也负责维护其API。Chrome浏览器可以远程调试的方式启动, 实际上在浏览器内部启动了一个采用DevTools的服务器, 任何符合该协议的websoket通讯都可以被Chrome响应,这样你可以向Chrome发送命令, 执行操作, 实现一些自动化浏览器的操作。大名鼎鼎的ChromeDriver就原创 2020-11-03 09:07:42 · 6515 阅读 · 0 评论 -
Selenium原理精讲
Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试(目前支持的语言有Java,Python,Ruby,C#),并且 Selenium能够在一个或多个浏览器中执行这些测试。Selenium最常用的版本是Selenium2和Selenium3。大家可以理解为selenium3是selenium2的升级版本,主要更新内容如下:去掉了对selenium rc的支持 全面拥抱java 8。 如果你需要使用sele原创 2020-10-30 14:21:38 · 409 阅读 · 0 评论 -
Selenium进阶——解决web 自动化中上传文件的问题
在做ui自动化测试中,经常会遇到上传文件或者图片的场景,通常的解决方案是自动化工具+autoIT,在这里我介绍一种通过jdk自带api—— java.awt.Robot 来解决类似问题的方法。java.awt.Robot类主要用于模拟用户点击键盘上的按键,或者模拟用户敲击鼠标等动作。在做web测试时,弹出窗口如下图所示:Windows上传文件对话框对于打开上传文件框是input形式的控件可以用selenium 的方法:driver.findElement(By.id(""))..原创 2020-11-05 11:15:17 · 585 阅读 · 0 评论 -
干货!一文搞定无头浏览器的概念以及在selenium中的应用
无头浏览器,即 Headless Browser,是一种没有界面的浏览器。它拥有完整的浏览器内核,包括 JavaScript 解析引擎、渲染引擎等。与普通浏览器最大的不同是,无头浏览器执行过程中看不到运行的界面,但是我们依然可以用 GUI 测试框架的截图功能截取它执行中的页面。在这里强调一下,好多文章说无头浏览器不做渲染,其实这个说法是不准确的原创 2022-11-21 15:00:09 · 7209 阅读 · 2 评论 -
解决selenium升级到版本 4.16后出现的问题: org/openqa/selenium/WebDriver 编译环境是55.0(jdk11),而运行环境为52.0( jdk8 )
最近升级了selenium到版本 4.16.1, 持续集成测试,执行mvn test时遇到问题如下java.lang.UnsupportedClassVersionError: org/openqa/selenium/WebDriver has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recogn原创 2023-12-28 11:10:42 · 3467 阅读 · 2 评论 -
福音!Selenium使用WebDriverManager以后,再也不用被浏览器driver与浏览器版本不匹配的问题折磨了!
相信做selenium自动化测试开发的同学会经常遇到类似的问题:警告: The chromedriver version (114.0.5735.90) detected in PATH at D:\webdriver\chromedriver.exe might not be compatible with the detected chrome version (120.0.6099.110); currently, chromedriver 120.0.6099.109 is recommende原创 2023-12-22 14:29:26 · 2638 阅读 · 0 评论 -
干货!Playwright架构与Selenium 架构对比
在 Web 测试自动化方面,Selenium 多年来一直是行业的主导工具。但是,市场上还有许多其他自动化测试工具。Playwright是一种较新的工具,已经越来越受欢迎。网上有很多文章对二者进行对比,今天我从二者的架构角度进行一下对比分析!原创 2023-02-27 10:13:23 · 3556 阅读 · 1 评论 -
无论您用selenium、appium还是playwright都必须使用PO设计模式
随着UI自动化测试工具越来越稳定,前几年关于自动化测试架构设计的概念逐渐淡化,但是架构中最有用的PO设计模式思想依然需要刚入门自动化测试领域的小白深刻掌握,本文就带大家理解什么是PO设置模式以及对其优化的具体方案。原创 2023-12-13 17:00:27 · 669 阅读 · 0 评论 -
selenium v4正式版本发布 速看需要了解的内容
目前selenium的最新版本是v4.1.2(截止到2022年3月7日),看了一下v4.0.0到v4.1.2的升级变化,发现selenium4正式版与 rc版本相比,核心功能并没有发生变化,主要变化的内容总结出以下两点:1. 对CDP协议高版本的不断支持,关于cdp协议,可以参考文章Selenium进阶——使用ChromeDevTools协议编写自己的ChromeDriver2. Selenium Grid的bug修复 以及稳定性的提升备注:关于v4.1.2中新增的功能Add new ...原创 2022-03-09 16:34:19 · 1500 阅读 · 0 评论 -
GPT4会应用到Playwright 中对 Selenium进行降维打击吗?
最近调研了Playwright,Playwright是微软开发的一个端到端的Web测试和自动化库。该框架的主要作用是测试Web应用程序,也可以将其应用于网页抓取。另外进行了初步学习后,发现网络更为关注的是Playwright和Selenium的对比!原创 2023-03-27 10:14:52 · 683 阅读 · 0 评论 -
敲黑板!使用Java编写Selenium脚本的同学请注意,Selenium宣布2023年9月30日停止支持Java 8!
由于我目前都是使用playwright实现ui自动化测试的相关工作,好久没有关注Selenium了,最近看到这样的消息:Selenium宣布2023年9月30日停止支持Java 8原创 2023-12-22 09:35:48 · 2151 阅读 · 0 评论 -
重磅!自动化测试工程师必看!selenium4 RC版本正式发布!
刚刚步入九月,slenium4的4.0.0-rc-1版本正式发布,RC (Release Candidate)发行候选版本,基本不再加入新的功能,主要修复bug,是最终发布成正式版的前一个版本,这意味着Selenium4的正式版本即将发行!在这里我对Selenium4进行了试用并对其新功能进行了一个简单的总结供大家快速上手。环境搭建1.Maven方式2.Jar包下载https://www.selenium.dev/downloads/这里要特别强调,大家使用各个浏览器,一...原创 2021-09-09 09:18:50 · 5530 阅读 · 0 评论