Selenium WebDriver与RC的差异

news2024/9/20 16:29:27

什么是Selenium WebDriver?

Selenium WebDriver 是用于测试Web应用程序的API的开源集合。Selenium WebDriver工具,它还允许执行跨浏览器测试。

WebDriver还能够使用编程语言在创建测试脚本时使用。现在可以使用条件运算就像If-Then-Else或Switch-Case。还可以像Do-While执行循环操作。

WebDriver支持以下编程语言

  • Java语言
  • .NET
  • PHP
  • Python
  • Perl
  • Ruby

Selenium RC与WebDriver的区别

在2006年9月WebDriver出现之前,还有另一个,自动化工具称为Selenium RC。WebDriver和Selenium RC都具有以下功能:

  • 使用编程语言设计测试脚本。
  • 在不同的浏览器上运行测试。

那么它们有什么不同呢?来讨论一下。

1. 架构

WebDriver的架构比Selenium RC的架构简单

  • 它从操作系统级别控制浏览器
  • 只需要编程语言的IDE(其中包含Selenium命令)和一个浏览器。

Selenium RC的架构要复杂得多
  • 在可以开始测试之前,首先需要启名为SeleniumRemote Control(RC)Ser ver的单独应用程序
  • Selenium RC服务器充当Selenium命令和浏览器之间的“中间人”
  • 当开始测试时,Selenium RC服务器“注入”一个 名为Selenium Core的JavaScript程序 添加到浏览器中。
  • 注入后,Selenium Core将开始接收RC服务器从测试程序转发的指令。
  • 当接收到指令时, Selenium Core将把它们作为Javascript命令执行。
  • 浏览器将服从Selenium Core的指令,并将其响应转发给RC服务器。
  • RC服务器将接收浏览器的响应,然后向显示结果。
  • RC服务器将从测试脚本获取下一条指令,以重复整个周期。

2. 速度

WebDriver比Selenium RC更快,因为它直接与浏览器对话,使用浏览器自己的引擎来控制它。

Selenium RC速度较慢,因为它使用名为Selenium Core的Javascript程序。直接控制浏览器的是这个Selenium Core。

3. 现实生活中的互动

Webdriver以一种更现实的方式与页面元素交互。例如,如果正在测试的页面上有一个禁用的文本框,则WebDriver确实不能像真人那样在其中输入任何值。

Selenium Core,就像其他的JavaScript代码,可以访问禁用的元素。

4. API接口

Selenium RC的API更为成熟,但包含冗余且经常令人困惑的命令 。例如,大多数情况下,测试人员会感到困惑,不知道是使用type还是typeKeys。更糟的是, 不同的浏览器也会以不同的方式解释这些命令!

Webdriver的API比Selenium RC的API简单。它不包含冗余和模糊的命令。

5. 浏览器支持

Webdriver可以支持HtmlUnit浏览器。HtmlUnit被称为“Headless”,因为它是一个看不见的浏览器--它没有GUI。

HtmlUnit浏览器是一个非常快的浏览器,因为不需要花费时间来等待页面元素加载。这加快了测试执行周期。由于它对用户是不可见的,因此只能通过自动手段进行控制。

Selenium RC不支持无头HtmlUnit浏览器。它需要一个真正的、可见的浏览器来操作。

WebDriver的局限性

WebDriver不能很容易地支持新浏览器

WebDriver在操作系统级别运行。所以, 必须给WebDriver团队相当长的时间来弄清楚那个新流程然后才能在下一个WebDriver版本中实现它。

然而,这取决于WebDriver的开发团队是否应该支持新浏览器。

6.测试结果的支持

Selenium RC具有内置的测试结果生成器

Selenium RC自动生成测试结果的HTML文件 。报告的格式是由R预先设定的看下面这份报告的示例。

WebDriver没有自动生成测试结果文件的内置命令。必须依赖IDE的输出窗口,或者使用编程语言的功能自行设计报告并将其存储为文本、HTML等。

总结

  • WebDriver是用于测试Web应用程序的工具 跨不同浏览器使用不同的编程语言。
  • 现在可以进行功能强大的测试,因为WebDriver 允许使用编程语言 根据选择来设计测试。
  • WebDriver是 比Selenium RC更快因为它的架构更简单。
  • 网络驱动程序 直接与浏览器对话 而Selenium RC需要RC服务器的帮助才能做到这一点。
  • WebDriver的API更简明扼要比SeleniumRC的要好。
  • 网络驱动程序 可以支持HtmlUnit 而Selenium RC则不能。
  • WebDriver的唯一缺点是:
    • 不能很容易地支持新浏览器 ,但SeleniumRC可以。
    • 没有内置命令 用于自动生成测试结果。
总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

   视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。    

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

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

相关文章

Centos 7 单机部署 consul

一、下载安装 参考官网文档 Install | Consul | HashiCorp Developer 进入Centos 执行下面命令 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consul 这种方法安装完成…

linux下vsc的自动切换输入法解决方案

前言 个人使用的是Linux开发加上vsc编辑器,这两个东西一加中国开发者大致上就消失不见了,眼馋idea那个Smartinput很久了,赶上放假了,有空搞搞,如果后期有心情会做的通用点 安装 商店搜索SmartInputLinux安装 使用…

STM32标准库开发—MPU6050详细介绍

MPU6050简介 3轴IMU即只有3轴陀螺仪的IMU,其因为只有一个3轴陀螺仪,所以只能感知载体roll(滚转)、pitch(俯仰)、yawl(偏航)共3个自由度的姿态信息。 6轴IMU在3轴IMU的基础上加装了3轴…

Unity之射线检测

不知道大家有没有玩过红色警戒 —— 一款即时战略游戏,和罪恶都市一样小编小学的时候就开始玩了,这款游戏控制单位角色移动是通过鼠标的点击来实现。 同样的操作方法还有英雄联盟等很多游戏,那本篇文章小编就通过简单小实例来讲解这种操作在U…

[ComfyUI进阶教程] lcm+Lora+Controlnet工作流工作流

这是一个使用了LCMlora加载器CN(depthtile)的工作流。 工作流特性: LCM lora加载器,加快生成图片的时间。 配置了3个lora加载器,用来进行人物和风格设定。 提示词编辑器,预制了默认的动态提示词。 使用了…

linux第一个小程序 --- 进度条【简洁】

行缓冲区的概念 结果:先输入hello world然后休眠三秒后结束 当去掉’\n“ 后,结果就变成了先休眠三秒,然后打印hello world后结束。 该现象就证明了缓冲区的存在。 当缓冲区中遇到’‘\n’或者缓冲区被写满后才会被打印出来,在第…

【设计模式】腾讯二面:自动贩卖机/音频播放器使用了什么设计模式?

状态模式是什么? 状态模式,也被称作状态对象模式,是一种行为设计模式。 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 它让对象在其内部状态改变时改变自己的行为。外部调用者无需了…

(蓝桥杯每日一题)love

问题描述 马上就要到七夕情人节了,小蓝在这天想要心爱得男神表白,于是她写下了一个长度为n仅由小写字母组成的字符串。 她想要使这个字符串有 1314个 love 子序列但是马虎的小蓝却忘记了当前已经有多少个子序列为 love。 请你帮小蓝计算出当前字符串有多…

Rustdesk 中VP8 / VP9 / AV1 是什么?

环境: Rustdesk1.1.9 VP8 / VP9 / AV1 问题描述: VP8 / VP9 / AV1 是什么? 解决方案: 1.VP8、VP9和AV1是视频编解码器,用于压缩和解压缩视频数据。它们是由Google和Alliance for Open Media(AOM&#…

spring springfox-swagger2 2.7.0配置

springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/> <!-- lookup parent from repository -->…

解决国内Linux服务器无法使用Github的方法

解决思路&#xff1a;修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后&#xff0c;修改服务器的/etc/hosts 添加如下两行&#xff1a; 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…

Python 中多线程与多处理之间的区别

一、说明 在本文中&#xff0c;我们将学习 Python 中多线程和多处理的内容、原因和方式。在我们深入研究代码之前&#xff0c;让我们了解这些术语的含义。 二、基本术语和概念 程序是一个可执行文件&#xff0c;它由一组执行某些任务的指令组成&#xff0c;通常存储在计算机的…

数据恢复轻松搞定:如何处理.adver的数据勒索

引言&#xff1a; 勒索病毒日益猖獗&#xff0c;.adver 勒索病毒作为新兴威胁之一&#xff0c;给用户的数据安全带来了不小的挑战。本文将深入介绍.adver勒索病毒的特点、被加密数据的恢复方法&#xff0c;以及全面的预防措施&#xff0c;帮助您更好地了解并应对这一数字威胁。…

【每日一题】按分隔符拆分字符串

文章目录 Tag题目来源解题思路方法一&#xff1a;遍历方法二&#xff1a;getline 写在最后 Tag 【遍历】【getline】【字符串】【2024-01-20】 题目来源 2788. 按分隔符拆分字符串 解题思路 方法一&#xff1a;遍历 思路 分隔符在字符串开始和结束位置时不需要处理。 分隔…

16k+ start 一个开源的的监控系统部署教程

安装条件 Linux或macOS系统 4GB内存 开放 33014、33174、3183端口 1.安装 1、下载源码 首先使用 git 克隆源码到本地 git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/ 方式1&#xff1a;运行 install.sh 脚本一键安装 ./install.s…

HAL库配置RS485通信

在配置好串口的基础上完成RS485的配置 一、使能RS485的发送和接收模式引脚 __HAL_RCC_GPIOG_CLK_ENABLE();//高电平是发送模式&#xff0c;低电平是接收模式&#xff0c;默认是接收模式HAL_GPIO_WritePin(PG4_RS485_DIR1_Port, PG4_RS485_DIR1_Pin, GPIO_PIN_RESET);GPIO_Init…

代码随想录算法训练营Day24 | 122.买卖股票的最佳时期、55.跳跃游戏、45.跳跃游戏||

LeetCode 122 买卖股票的最佳时期 本题思路&#xff1a;记录每天的利润值&#xff0c;第一天的为 0 &#xff0c;第二天的当天的减去前一天的。然后遍历相加为正的利润值。最后得到的结果就是最大利润。 class Solution {public int maxProfit(int[] prices) {int res 0;for(…

DiffMIC:融合局部和全局分析,基于扩散模型的医学图像分类方法

DiffMIC&#xff1a;基于扩散模型的医学图像分类方法 DiffMIC的核心思想糖尿病视网膜病变分级 网络结构去噪扩散模型&#xff1a;提升特征清晰度双粒度条件引导&#xff08;DCG&#xff09;&#xff1a;融合局部和全局分析条件特定的最大均值差异&#xff08;MMD&#xff09;正…

Linux:软件包管理器 yum

提示&#xff1a;以下指令均在Xshell 7 中进行 什么是软件包&#xff1f; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放…

Linux上软件安装

软件安装常见方式 二进制发布包 软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可。 RPM包 软件已经按照redhat的包管理工具规范RPM进行打包发布&#xff0c;需要获取到相应的软件RPM发布包&#xff0c;然后用RPM命令进行安装&#xff0c;但…