Selenium WebDriver 中的机器人类:方法、重要性和实现

已发表: 2021-05-02

Selenium Web 驱动程序脚本使用 Java 函数来自动化桌面弹出窗口和浏览器,而无需将这些函数作为 Web 驱动程序 API(应用程序编程接口)的 selenium 包的一部分,而是作为 Java API AWT(抽象窗口工具包)的一部分.

进一步了解这是哪个功能以及它如何在 JAVA 中工作并自动化功能不是很有趣吗? 这个 Java 函数被称为“机器人类”。 本文介绍了机器人类的概念,它的实现方法,重要性,在 selenium 中的实现,以及它在本文中的局限性。

目录

什么是机器人类?

Java AWT 包在 Robot 类中包含一个 Robot Java。 Robot 类的主要目的是自动化测试 Java 实现并自动模拟实时鼠标和键盘操作。 它可以很容易地与现有的自动化框架集成,有助于扩大其覆盖范围。

它广泛用于 Selenium 自动化测试,以控制键盘和鼠标,同时与 OS(操作系统)窗口(如打印或下载弹出窗口)以及本机应用程序(如计算器和记事本)交互。 由于 Selenium Webdriver 无法处理此类弹出窗口和应用程序,因此引入了 Java V.1.3 内置机器人类。

实现机器人类的方法

机器人类可以使用键盘功能和鼠标功能轻松实现。 实现机器人类需要很少的方法来帮助轻松执行测试脚本,例如 KeyPress()、KeyRelease()、MouseMove()、MousePress()、MouseRelease() 和 KeyEvent()。

  • 键盘功能用于模拟各种键盘键及其操作。 public void KeyPress (int keycode) 函数用于按下输入参数键。 公共 void KeyRelease (int keycode) 函数在 keyPress 函数之后释放输入参数键。
  • 鼠标功能用于模拟各种鼠标操作。 公共 void mouseMove (int x, int y) 函数根据 x 和 y 的输入坐标在屏幕上移动鼠标指针。 public void mouse press (int buttons) 函数模拟类似于 keyPress 函数的鼠标按下操作。

Selenium 中机器人类的重要性

  • 模拟和处理键盘和鼠标事件
  • 帮助在 Selenium Web 驱动程序中上传/下载文件
  • 有效处理弹出窗口
  • 在 Selenium Web 驱动程序中使用Robot 类时轻松上传文件
  • 与现有自动化框架轻松集成

另请阅读: Selenium 项目理念和主题

在 Selenium 中实现机器人类

Selenium 中机器人类生成本地系统输入事件以自动化测试并生成自运行演示。 它还创建了控制鼠标和键盘所需的其他应用程序。 引入机器人类以克服 Web 驱动程序在处理操作系统弹出窗口方面的限制。 它增强了自动化框架的实用功能。

selenium 中的 Web 应用程序使用应用程序的定位器并确定网页的位置以进行相应的操作。 在某些情况下,在自动化windows操作系统的同时,需要处理windows pop-ups和windows authentication pop-ups。 正如前面在 selenium 中提到的,Robot 类执行这些职责。 尽管它不会自动执行 Windows 操作,但它可用于完成此类任务。

Selenium 实现步骤中的机器人类

  • 将浏览器驱动程序链接到ChromeDriver并指定路径。
  • 获取相应的网页 URL(统一资源定位器),并在导航时出现 OS 弹出窗口。
  • 使用元素定位器查找网页元素
  • 使用机器人类处理弹出窗口并在代码中创建机器人类的实例。

机器人类存在于 JDK(Java 开发工具包)的 AWT 包中。

结帐:印度的 Selenium 开发人员薪水

机器人类的限制

  • 键盘或鼠标事件仅适用于可能导致机器人类的不当行为的当前窗口实例。 相反,存在多个窗口或运行测试的多个浏览器。
  • 难以在不同的窗口或框架之间切换
  • 在执行机器人事件时将代码执行移动到另一个窗口时,键盘或鼠标事件会停留在前一个窗口上。
  • 某些函数依赖于屏幕分辨率,可能会导致在不同机器上的代码执行效率低下,例如 MouseMove()。
  • 在VM(虚拟机)测试上,脚本失败概率更大。

从世界顶级大学在线学习软件开发课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

由于自动化正在成为计算机上每个活动的基础,因此Selenium 中的机器人类具有其重要性。 简而言之,Java 中的 Robot Class 是 Selenium 版本中用于自动化其键盘和鼠标功能的外部类。

如果您有兴趣了解有关 Java、OOP 和全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训, 9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

selenium 中的 webdriver 是什么?

Webdriver 是一个用于自动化基于 Web 的测试的工具。 它提供用于检测和控制浏览器和其他支持 Web 的设备的 API。WebDriver 可以用多种编程语言实现,包括 C#、Java、Ruby、PHP、Python 等。WebDriver 是用于自动化 Web 应用程序的最流行的工具. WebDriver 是一个用于自动与 Web 浏览器交互的工具。 Selenium 项目为 Web 应用程序测试提供了一个独立于浏览器的库。 您可以使用多种编程语言编写测试。 WebDriver 提供了粘合剂,让您可以从单个测试脚本调用这些不同的语言。

Selenium 可以使用哪些编程语言?

Selenium 的 WebDriver 组件可以与任何允许远程连接的编程语言一起使用。 这包括 Java、Python、Scala、Ruby、Perl 和 PHP 等。 为了编写测试,您需要根据您的首选语言安装 WebDriver 客户端。 这可以使用该语言的适当安装步骤来完成。 Selenium 支持几乎所有可用的编程语言。 例如,您可以将 Python 和 Ruby 与 Selenium 一起使用(并且您可以使用 C、C++ 和 Java 等语言来编写 Selenium 扩展)。

Selenium webdriver 中的机器人类是什么?

Selenium 中的机器人类用于向浏览器发出命令以移动到其中的特定坐标。 Robot 类是 Selenium Webdriver 的浏览器模拟器。 它是真实浏览器的代理,可用于自动与网页交互,就像真实用户一样。 通过将所需的用户代理传递给特殊的 WebDriver 实例来动态创建机器人。 Robot 类是 Selenium Webdriver 中的一个接口,用于创建新的定位器(即查找元素)。 有多种定位器创建方法,如 By.id()、By.name()、By.linkText()、By.xpath() 等。