Selenium - 远程控制


什么是Selenium RC?

Selenium Remote Control (RC) 是 Selenium WebDriver(Selenium 2.0)出现之前持续了很长时间的主要 Selenium 项目。现在Selenium RC已经很少使用了,因为WebDriver提供了更强大的功能,但是用户仍然可以继续使用RC来开发脚本。

它允许我们借助 Java、C#、Perl、Python 和 PHP 等编程语言的全部功能来编写自动化 Web 应用程序 UI 测试,以创建更复杂的测试,例如读写文件、查询数据库以及通过电子邮件发送测试结果。

Selenium RC 架构

Selenium RC 的工作方式是客户端库可以与 Selenium RC 服务器进行通信,传递每个 Selenium 命令来执行。然后服务器使用 Selenium-Core JavaScript 命令将 Selenium 命令传递到浏览器。

浏览器使用其 JavaScript 解释器执行 Selenium 命令。

SeleniumIDE 52

Selenium RC 分为两部分。

  • Selenium 服务器启动并终止浏览器。除此之外,它还解释并执行 Selenese 命令。它还通过拦截和验证浏览器与被测应用程序之间传递的 HTTP 消息来充当 HTTP 代理。

  • 客户端库提供每种编程语言(Java、C#、Perl、Python 和 PHP)与 Selenium-RC 服务器之间的接口。

RC 脚本

现在让我们使用 Selenium Remote Control 编写一个示例脚本。让我们使用http://www.calculator.net/来了解 Selenium RC。我们将使用“数学计算器”模块下的“百分比计算器”执行百分比计算。

步骤 1 - 启动 Selenium Remote Control(在命令提示符的帮助下)。

步骤 2 - 启动 Selenium RC 后,打开 Eclipse 并创建一个“新项目”,如下所示。

SeleniumIDE 53

步骤 3 - 输入项目名称并单击“下一步”按钮。

SeleniumIDE 54

步骤 4 - 验证源、项目、库和输出文件夹,然后单击“完成”。

SeleniumIDE 55

步骤 5 - 右键单击​​“项目”容器并选择“配置构建路径”。

SeleniumIDE 56

步骤 6 - 打开“selrcdemo”属性。导航到“库”选项卡并选择“添加外部 JAR”。选择我们下载的 Selenium RC jar 文件,它将如下所示。

SeleniumIDE 57

步骤 7 - 引用的库如下所示。

SeleniumIDE 58

步骤 8 - 通过右键单击“src”文件夹并选择“新建”>>“类”来创建新的类文件。

SeleniumIDE 59

步骤 9 - 输入类文件的名称并启用“public static void main”,如下所示。

SeleniumIDE 60

步骤 10 - 在文件夹结构下创建创建的类,如下所示。

SeleniumIDE 70

步骤 11 - 现在是编码的时候了。以下代码中嵌入了注释,以便读者理解所提出的内容。

package selrcdemo;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class rcdemo {
   public static void main(String[] args) throws InterruptedException {

      // Instatiate the RC Server
      Selenium selenium = new DefaultSelenium("localhost", 4444 , "firefox", "http://www.calculator.net");
      selenium.start();   // Start
      selenium.open("/");  // Open the URL
      selenium.windowMaximize();

      // Click on Link Math Calculator
      selenium.click("xpath = .//*[@id = 'menu']/div[3]/a");
      Thread.sleep(2500); // Wait for page load

      // Click on Link Percent Calculator
      selenium.click("xpath = .//*[@id = 'menu']/div[4]/div[3]/a");
      Thread.sleep(4000); // Wait for page load

      // Focus on text Box
      selenium.focus("name = cpar1");
      
      // enter a value in Text box 1
      selenium.type("css=input[name = \"cpar1\"]", "10");
      
      // enter a value in Text box 2
      selenium.focus("name = cpar2");
      selenium.type("css = input[name = \"cpar2\"]", "50");

      // Click Calculate button
      selenium.click("xpath = .//*[@id = 'content']/table/tbody/tr/td[2]/input");

      // verify if the result is 5
      String result = selenium.getText(".//*[@id = 'content']/p[2]");

      if (result == "5") {
         System.out.println("Pass");
      } else {
         System.out.println("Fail");
      }
   }
}

步骤 12 - 现在,让我们通过单击“运行”按钮来执行脚本。

SeleniumIDE 72

步骤 13 - 脚本将开始执行,用户将能够在“命令历史记录”选项卡下查看命令历史记录。

SeleniumIDE 71

步骤 14 - 应用程序的最终状态如下所示。计算百分比并将结果显示在屏幕上,如下所示。

SeleniumIDE 73

步骤 15 - 测试的输出打印在 Eclipse 控制台上,如下所示,因为我们已将输出打印到控制台。输出实时写入 HTML 文件或简单的文本文件中。

SeleniumIDE 74