selenium 4_Selenium4 Alpha –期望什么?

selenium 4

Selenium4 Alpha-期望什么?

早在2018年8月,整个测试自动化社区就受到了一个重大新闻的打击:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重大更新。 世界最受欢迎的Web测试自动化框架的4.0版本计划于2018年圣诞节之前发布。

稍有延迟,Selenium 4.0 Alpha版本发布了,可以从Selenium官方网站下载javascript。 让我们回顾一下Selenium会议上宣布的功能以及此版本中提供的一些改进和附加功能。

为什么Selenium4.0很重要

如果您认为测试自动化工程师是世界上唯一应该关注Selenium重大更新的人员,那么您是错的。
当然,Selenium已成为实现自定义自动测试的行业标准,并且被认为是每个Web应用程序的首选解决方案,而这些应用程序已经摆脱了手动测试可以解决大多数问题的方法。
但是经常被遗忘的是,严重依赖Selenium的企业不仅是拥有自动化QA工程师团队的企业,而且是集成了基于Selenium的无代码自动化测试工具的企业。

基于Selenium的无代码测试已成为意识到自动化的重要性但没有内部质量保证专家能够实现自动化的每个企业的真正救星。 这样的工具不仅使对Web浏览器有基本了解的任何人都可以进行部署,而且还使运行回归测试,进行综合监视和负载测试成为可能,而无需任何Selenium框架知识。

此类无代码自动化软件的完美示例是CloudQA 。 在Selenium之上,我们开发了一种工具,该工具需要团队的零努力,与第三方应用程序的集成,比以往任何时候都更容易构建测试用例,24/7来监控您的网页性能,并且成本比租用一个初级手动测试仪。

如果您想更多地了解基于Selenium的无代码自动化工具的优势,请获取免费演示 。

Selenium4的重大变化

让我们来看看Selenium 4.0 Alpha版本的主要变化-

W3C WebDriver标准化

首先,Selenium 4 WebDriver是完全W3C标准化的。 WebDriver API在Selenium之外已经变得越来越重要,并且已在多种自动化工具中使用。 例如,诸如Appium和iOS驱动程序之类的移动测试工具在很大程度上依赖于它。 W3C标准还将鼓励WebDriver API的不同软件实现之间的兼容性。

这是Selenium Grid与早期版本中的Driver可执行文件进行通信的方式:

Selenium 3.x中的测试通过本地端的JSON协议与End节点的浏览器进行通信。 这种方法需要对API进行编码和解码。

随着我们期望在Selenium 4中看到的更新,该测试将直接进行通信,而无需通过W3C协议对API请求进行任何编码和解码。 尽管JAVA绑定将向后兼容,但重点将更多地放在W3C协议上。 JSON有线协议将不再使用。

W3C WebDriver规范有多个贡献者,整个过程可以在GitHub上看到。

Selenium4 IDE TNG

Chrome的Selenium IDE支持现已可用。 您可以从以下网址下载-https : //selenium.dev/selenium-ide/

众所周知,Selenium IDE是一种记录和回放工具。 现在它将具有以下更加丰富和高级的功能:

  • 新的插件系统。 现在,任何浏览器供应商都可以轻松插入新的Selenium IDE。 您将能够拥有自己的定位器策略和Selenium IDE插件。
  • 新的CLI运行器。 它将完全基于NodeJS,而不是基于HTML的旧运行器,并将具有以下功能:
    • WebDriver播放。

改进的Selenium网格

与Selenium Grid合作过的任何人都知道设置和配置有多困难。 Selenium Grid支持在具有并行执行功能的不同浏览器,操作系统和机器上执行测试用例。

Selenium Grid有两个主要元素:集线器和节点。

集线器充当服务器,是控制网络中所有测试机的中心点。 在Selenium Grid中,只有一个中心根据功能匹配将测试执行分配给特定节点。

简而言之,Node是实际运行测试用例的测试机器。

有关Selenium Grid的更多详细信息,建议阅读有关Selenium Grid的完整官方教程 。

到目前为止,Selenium Grid的设置过程通常会导致测试人员难以将连接节点连接到集线器。

在Selenium 4中,由于不再需要分别设置和启动集线器和节点,因此网格体验变得轻松便捷。 启动Selenium服务器后,网格将同时充当集线器和节点。

Selenium提供三种类型的网格-

  1. 独立模式
  2. 集线器和节点
  3. 完全分布式

新的Selenium服务器jar包含运行网格所需的所有内容。 它具有所有依赖性。 新的网格还带有Docker支持。 目前,docker集成不使用UNIX域套接字,因此请确保docker守护进程正在侦听端口2375。

有关更多详细信息,请参阅-https ://github.com/SeleniumHQ/selenium/wiki/Selenium-Grid-4

更好的可观察性

“被动可观察性是进行描述性追踪的能力。”
–西蒙·斯图尔特

现在,可观察性,日志记录和调试不再局限于DevOps。 作为即将发布的版本的一部分,将改进带有钩子的请求跟踪和日志记录,以使自动化工程师可以进行调试。

刷新文档

文档在任何项目的成功中都起着关键作用。 自Selenium 2.0发行以来,Selenium文档尚未更新。 这意味着,过去几年中尝试学习Selenium的任何人都必须使用旧的教程。

因此,自然而然地,SeleniumHQ承诺将与4.0版本一起提供给我们的最新文档已经成为测试自动化社区中最受期待的Selenium更新之一。

Selenium 4.0 Alpha版本的改进-

ChromiumDriver和DevTools:

在Selenium 3中,EdgeDriver和ChromeDriver具有从RemoteWebDriver类继承的自己的实现。 在Selenium 4中,Chromedriver和EdgeDriver继承自ChromiumDriver。 ChromiumDriver类具有访问开发工具的预定义方法。 考虑下面的代码片段-

上面的代码创建到给定URL的会话,并执行javascript打印消息。 DevTools是一个类,具有用于获取开发人员选项的方法的类。

DevTools也可以用于性能评估并获取页面加载时间。

更好的窗口和标签管理

Selenium 4现在具有可以同时在两个不同的窗口上工作的功能。 当我们要导航到新窗口(或选项卡)并在那里打开其他URL并执行某些操作时,此功能特别有用。

newWindow()方法根据其参数中指定的WindowType打开一个新窗口或选项卡。

相对定位器

在Selenium 4 alpha版本中,我们还可以获得相对于任何其他定位器的定位器。

  • toLeftOf():位于指定元素左侧的元素。
  • toRightOf():位于指定元素右侧的元素。
  • above():相对于指定元素位于上方的元素。
  • below():相对于指定元素位于下方的元素。
  • near():元素距离指定元素最多50个像素。 像素值可以修改。

全屏快照

现在,我们可以在Firefox中使用getFullPageScreenshotAs()方法获取完整的屏幕截图。 但是,我们无需将其类型转换为“ TakesScreenshot”界面,而是需要将其类型转换为FirefoxDriver实例。

文件src =((FirefoxDriver)驱动程序).getFullPageScreenshotAs(OutputType.FILE);

可能会有一些更有趣的功能和改进,因此继续探索!

翻译自: https://www.javacodegeeks.com/2019/12/selenium-4-alpha-what-to-expect.html

selenium 4

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

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

相关文章

英文论文中“such as, for example, e.g., i.e., etc., et al. ”的用法分析

【1】README 本文转自: http://www.cnblogs.com/lanke_2009/archive/2010/12/07/1899185.html , 旨在学习 英文论文中的 如 “such as, for example, e.g., i.e., etc., et al. ”的用法; 【2】正文如下: 黄龙旺  龚汉忠 (上…

mysql8.0云时代_8.0.22Mysql的详细安装

Mysql8.0.22的安装和常见问题前言提示:以下是本篇文章正文内容,下面案例可供参考一、MySQL的下载和安装?1.mysql官网下载:https://dev.mysql.com/downloads/mysql/2.下载步骤:可以点击Go to download page 去下载32位的…

java泛型程序设计——翻译泛型表达式+翻译泛型方法

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 翻译泛型表达式翻译泛型方法 的知识; 【1】翻译泛型表达式 1.1)当程序调用泛型方法时, 如果擦除了泛型返回类型&#xf…

redis 受攻击怎么办?_最受欢迎的6个最常用的Redis库

redis 受攻击怎么办?Redis当前是世界上最受欢迎的键值商店, 它通过提供高速度和低延迟以及针对应用程序开发人员的灵活功能集,赢得了广泛的采用率 。 Redis是一个内存中的数据结构存储,用作根据BSD许可分发的数据库,缓存和消息代…

java泛型程序设计——调用遗留代码

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 调用遗留代码 的知识; 【1】调用遗留代码相关 1.1)设计java 泛型的目的: 允许泛型代码和遗留代码间能够相互操作&#…

java oracle 字符_Oracle转义字符

1、oracle 特殊字符 转义关键词: oracle 转义环境:oracle 9i plsql在plsql里边执行:update userinfo set pageurlmyjsp?page1&pagesize10 where idtest这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那…

jmeter进行性能测试_使用JMeter进行性能测试

jmeter进行性能测试在开发复杂的高可用性软件项目时,性能至关重要。 在当今这样的时代尤其如此,除了闪电般的实时数据可访问性之外,其他任何事情都受到惩罚。 当谈论有时需要的大量数据时,这并非总是一件容易的事。 在本文中&…

java泛型程序设计——约束与局限性

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 约束与局限性 的知识; 【1】 不能用基本类型实例化类型参数 1.1)不能用类型参数代替基本类型, 因此,没有 Pa…

python简单菜单_创建一个简单的python菜单

修正和评论,它们主要是语法错误。menulist 1. Print the list,2. Add a name to the list,3. Remove a name from the list,4. Change an item in the list,9. Quit #assuming you want to display menulist, having it as a tuple is uselesslst("johny"…

郎溪 溪流_到无限(溪流)和超越!

郎溪 溪流Java允许您处理集合或流中的数据。 将流视为将一个集合转换为另一个集合的技术非常容易。 这可能会导致一些相当随意的代码,其中流数据被重复收集到某种类型的集合中,作为一个整体集合传递,然后再进行更多处理。 对于6个元素&#…

java泛型程序设计——Varargs 警告+不能实例化类型变量

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 Varargs 警告不能实例化类型变量 的知识; 【1】 Varargs 警告 1.1)一个相关问题: 向参数个数可变的方法传递一个泛型类型…

rabbitmq怎么停止_Windows环境下RabbitMQ的启动和停止命令

Windows环境下RabbitMQ的启动和停止命令原创lockie_zou 最后发布于2018-05-24 15:34:21 阅读数 36514 收藏展开首先windows下安装好了erlang和rabbitmq。如下地址同时下载和安装:Erlang:http://www.erlang.org/download.htmlRabbitMQ :http:…

elk入门_ELK堆栈入门

elk入门朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK。 数分钟之内即可在任何应用程序中对用户进行身份验证,管理和保护。 好的设计原则要求微服务架构是可观察的,并提供集中的监视工具。 该工具使开…

java泛型程序设计——泛型类的静态上下文中类型变量无效+不能抛出或捕获泛型类的实例

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 泛型类的静态上下文中类型变量无效不能抛出或捕获泛型类的实例 的知识; 【1】泛型类的静态上下文中类型变量无效 1.1)不能在静态域或…

android ril.java_Android RIL学习

1.Android RIL概念Android RIL是基于telephony服务和raido硬件层的抽象层。Android的rild库是介于HAL接口与baseband modem之间,它提供了语音、数据、短信、SIM卡管理以及STK应用的功能。它把标准的GSM27.007中常用的如dial这些做主动请求的操作称之为request&#…

netty java_Netty Java快速指南

netty java使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 Netty是一个无阻塞输入/输出(NIO)框架,它使开发低级网络服务器和客户端…

java泛型程序设计——注意擦除后的冲突

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 注意擦除后的冲突 的知识; 1.1)当泛型类型被 擦除时, 无法创建引发冲突的条件。 1.1.1)看个荔枝&#xff…

java的Swing里怎么new一条线_java – 在JFrame上绘制一条线

我正在尝试使用图形2D绘制一条线,但然后该线出现在所有的线上JFrame中的其他组件因此使它们不可见.我该如何解决这个问题?这是代码:import javax.swing.*;import java.awt.*;import java.awt.geom.*;class Success extends JFrame{public Success(){JPan…

java –cp_Java –缺少字体–崩溃的应用程序!

java –cpEclipse MAT和Heaphero都是分析大型堆转储的流行Java工具。 最近,当我们尝试在Eclipse MAT中分析堆转储文件时遇到了一个有趣的问题。 工具因缺少字体crash而崩溃。 我们认为我们将与您分享发现的结果。 CompositeStrike.getStrikeForSlot(&am…

java泛型程序设计——泛型类型的继承原则

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 泛型类型的继承原则 的知识; 【1】泛型类型的继承原则相关 1.1)考虑一个类 Employee 和一个Employee子类 Manger , 问&a…