selenium自动化测试

尽管移动应用程序的市场份额有大幅增长,但网络应用程序仍然具有大量的用户基础。 在部署之前,企业正在关注Web应用程序的质量。 这是测试发挥重要作用的地方。 与某些可以自动化的功能测试不同,UI测试仍然大部分是手动过程。 但是将测试自动化可以节省时间和精力是明智的。 在自动化方面,Selenium测试是第一件事,因为它是世界上最受欢迎的测试自动化工具。 因此,让我们进一步了解Selenium测试。

什么是Selenium测试

Selenium测试工具是开源的,它使用户能够推动与页面的交互并跨各种平台测试应用程序。 它允许用户从喜欢的语言(例如Java,JavaScript,C#,PHP,Python等)控制浏览器。Selenium具有许多工具和API,可在IE,Chrome,Firefox,Safari,Opera,Opera等浏览器上自动执行HTML JavaScript应用上的用户交互等


Selenium Framework是一种代码结构,有助于简化和重用代码。 如果没有框架,我们会将代码和数据放置在同一位置,该位置既不可重用,也不可读。 Selenium自动化框架有利于提高可移植性,增加代码重用性,提高代码可读性,降低脚本维护成本等。

什么是Selenium Web驱动程序

Selenium WebDriver通过客户端API接受命令并将其发送到浏览器。 Selenium WebDriver是特定于浏览器的驱动程序,可帮助访问和启动不同的浏览器,例如Chrome,Firefox,IE等。WebDriver提供了一个界面来创建和运行自动化脚本,并且每个浏览器都有不同的驱动程序来运行测试。 不同的驱动程序是IE驱动程序,Firefox驱动程序,Safari驱动程序,Chrome驱动程序等。

引入Selenium WebDriver是为了消除Selenium RC的局限性,后者提供了对网页的增强支持,其中页面上的元素无需重新加载即可更改。 许多浏览器都支持Selenium WebDriver,它使用每个浏览器的本机支持进行自动化测试。 支持这些功能,并根据所使用的浏览器进行直接调用。


WebDriver项目取决于编程语言以及开发环境。 Selenium支持多种语言,可以使用多种编程语言来设置项目。 Selenium在npm上提供JavaScript绑定。 可以使用Maven设置Java项目,并且还将下载Java绑定和依赖项以创建项目。

从命令行运行pip install selenium以在python环境中添加Selenium。 C#绑定是一组签名dll和依赖项dll的一部分。 您可以通过ChibimagicFacebook等第三方获得PHP绑定。 要将Selenium添加到Ruby环境中,请从命令行运行gem install selenium Web驱动程序。 设置环境后,SeleniumWeb驱动程序将像普通库一样运行。 SeleniumWeb驱动程序可以自我维持,因为在使用它之前不需要运行任何安装程序或进程。

编写Selenium自动化脚本

让我们看看如何从脚本启动浏览器。 确保您已经下载了Selenium罐文件和第三方驱动程序。 要启动浏览器,您需要做的第一件事就是为Web驱动程序创建一个对象。 然后使用get方法启动新的浏览器会话,并将其定向到参数中指定的URL。

现在,您需要系统指向浏览器的已下载exe文件的位置。 您可以使用System.setProperty来实现。 然后在键中提供浏览器驱动程序,并在值中提供浏览器exe文件位置的路径。 这里System是一个内置类,setProperty是访问浏览器驱动程序的方法。


设置路径后,您需要为WebDriver类创建一个对象。 将鼠标悬停在突出显示的值上,然后从列表中导入,因为我们已经在项目中添加了jar文件。

还有另外两种方法,driver.close()可用于关闭活动浏览器窗口,而driver.quit()可用于关闭浏览器以及所有关联的窗口。 要获取网页中任何元素的ID(例如按钮,图像,徽标,文本框等),只需右键单击并选择检查。 您将从中获取源代码,可以在其中复制要在脚本中使用的ID。 您还可以为脚本使用任何其他元素定位器。


现在提到驱动程序实例,然后从WebDriver类中选择findElement方法。 然后选择ID定位器,并提及我们从源代码复制的值。 使用sendKeys将某些值传递给特定的Web元素。

在Selenium IDE中运行测试用例很容易。 这是一个Firefox插件,可以帮助记录测试并转换为代码。 运行测试用例有多个选项,包括“运行”按钮以运行显示的测试用例。

“全部运行”按钮用于运行当前已加载的测试套件中的测试用例。 “暂停”按钮允许暂停和重启正在运行的测试用例。 有一个“速度”按钮可以保持测试用例的运行速度。 使用“记录”按钮,您可以记录在网络浏览器中执行的操作。


您还可以在Selenium IDE中使用基本URL,通过提及相对URL作为打开测试用例的参数来在多个域中运行测试用例。

该表以可读格式显示命令及其参数。 而命令目标和值字段显示当前选择的命令及其参数。 该日志将向您显示任何类型的错误消息和信息消息,并且在参考中,您将找到当前使用的selenium命令的文档。 您可以使用简单HTML文件并定义测试列表以定义测试套件。 文件中的每一行都应定义要添加到套件中的测试的路径。 您将找到许多方法来使用这些工具来改善开发和测试过程。

总结一下

企业一直在寻求优化测试过程,而自动化是做到这一点的一种方法。 尽管使用有效的工具进行自动化非常重要,并且Selenium自动化测试是开源和易于使用的,所以它是最佳选择。

翻译自: https://www.javacodegeeks.com/2019/09/selenium-testing-for-effective-test-automation.html

selenium自动化测试

selenium自动化测试_Selenium测试可实现有效的测试自动化相关推荐

  1. python写界面输入测试脚本_python+Selenium自动化测试——输入,点击操作

    这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要 ...

  2. python测试脚本项目全程教程_《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)...

    1. 简介 今天我们继续前边的练习,学习和练习一下:如何使用webdriver方法获取操作复选框-CheckBox.测试不同的分辨率.如何断言title.如何获取某一个元素的text属性值等等,这些小 ...

  3. selenium自动化测试框架_selenium自动化测试框架之PO设计模式

    面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. 传 ...

  4. selenium自动化测试_维持Selenium测试自动化的完美方法

    selenium自动化测试 毫无疑问, 自动浏览器测试已改变了软件开发的工作方式. 如果不是Selenium,我们将无法像我们一样使用各种各样的无错误的Web应用程序. 但是有时,甚至IT部门也误解了 ...

  5. selenium 示例_Selenium测试中所需的功能和示例

    selenium 示例 所需功能是用于声明一组基本要求(例如浏览器,操作系统,浏览器版本等的组合)的类,以对Web应用程序执行自动跨浏览器测试. 当我们尝试通过Selenium自动化测试来自动化测试脚 ...

  6. selenium优缺点_Selenium测试自动化工具的优缺点

    selenium优缺点 谁不喜欢深背景的命名故事? 在2000年代初期,一家名为Mercury Interactive的公司通过其工具Astra Quick Test统治了测试自动化领域. 这不是可以 ...

  7. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

  8. python写界面输入测试脚本,python+Selenium自动化测试——输入,点击操作

    这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要 ...

  9. selenium架构_Selenium测试的干净架构

    selenium架构 在此博客文章中,我想介绍一种具有最佳设计模式的Selenium测试的简洁架构:页面对象,页面元素(通常称为HTML包装器)以及自行开发的非常小巧的框架. 该体系结构不限于示例中使 ...

最新文章

  1. mysql idataparameter_小白不坑爹的asp.net SqlParameter和带参数存储过程运用
  2. 一起学习下一线大厂的分布式唯一ID生成方案!
  3. windows 安装PyTorch0.4.0
  4. qrencode二维码生成在linux下的编译
  5. 自己写编译器学习总结
  6. __declspec关键字详细用法
  7. 记一次用WPScan辅助渗透WordPress站点
  8. 不吃不喝,两周业余时间研究(cisco SCE CM )
  9. 用递归计算一个数字每一位相加的结果。_leetcode 2 两数相加(c++)
  10. 实锤!Python 真没你想的那么简单…
  11. 不同版本web.xml文件头声明
  12. android canvas 教程,Android Canvas drawLine
  13. 123457123456#0#-----com.yuming.HitMouse01--前拼后广--幼儿打地鼠游戏
  14. dvd在线租赁问题 matlab,DVD在线租赁服务管理模型
  15. 在线CAD平台,MxCAD云图 2021.01.20更新,在线CAD软件
  16. 基于Android的高德地图的定位和运动轨迹记录的功能
  17. Delphi结合百度图像识别接口进行企业微信通讯录数据采集
  18. 一个故事讲完进程、线程和协程
  19. Python金融大数据分析:用pandas处理金融时间序列数据的基础知识
  20. javascript实现图片上传实时显示上传图片

热门文章

  1. [线性代数学习笔记] 线性递推数列及 Berlekamp-Massey 算法的详细推导过程
  2. [国家集训队]航班安排 (最大费用最大流)
  3. NOIP2020洛谷P7115:移球游戏(分治)
  4. YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】
  5. 2020牛客NOIP赛前集训营-提高组(第六场)A-袜子分配【组合数学,结论】
  6. P5579-[PA2015]Siano【线段树】
  7. P4316-绿豆蛙的归宿【数学期望】
  8. 线段树专题-等差子序列 BZOJ-2124
  9. 详解Vue中watch的高级用法
  10. HashMap 和 HashTable 到底哪不同 ?