Selenium浏览器自动化测试使用(2)

Selenium - 环境安装设置

为了开发Selenium RC或webdriver脚本,用户必须确保他们有初始配置完成。有很多关联建立环境的步骤。这里将通过详细的讲解。

  • 下载并安装Java

  • 下载并配置Eclipse

  • 配置Firebug和FirePath

  • 配置Selenium RC

  • 配置Selenium的webdriver

下载并安装Java

我们需要有JDK(Java开发工具包)安装序Selenium Webdriver/Selenium工作。让我们先来看看如何下载和安装Java。

步骤1: 导航到的网址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmll

步骤2:转到“Downloads”部分,然后选择“JDK Download”。

Selenium IDE 30

步骤3:选择“Accept License Agreement”单选按钮。

Selenium IDE 31

第4步:选择合适的安装。在这种情况下它是“Windows 7-64'位。点击相应的链接和exe档案保存到硬盘。

Selenium IDE 32

第5步:运行下载的exe文件和安装程序向导。点击“Next”继续。

Selenium IDE 33

第6步:选择功能,然后点击“Next”。

Selenium IDE 34

步骤7:安装程序提取和相同的进度显示在向导中。

Selenium IDE 35

第8步:用户可以选择安装位置,然后单击“Next”。

Selenium IDE 36

第9步:安装程序安装JDK和新的文件将被复制。

Selenium IDE 37

第10步:安装程序安装成功,并显示给用户。

Selenium IDE 38

步骤11:要验证是否安装成功,转到命令提示符,然后只需键入Java的一个命令。该命令的输出如下所示。如果Java安装不成功,或者如果它没有安装它会引发“unknown command”的错误。

Selenium IDE 48

下载并配置Eclipse

第1步:根据操作系统体系结构导航到URL :http://www.eclipse.org/downloads/ 并下载。

Selenium IDE 39

第2步:点击“Download”按钮。

Selenium IDE 40

第3步:下载将是一个压缩格式。解压缩的内容。

Selenium IDE 41

第4步:找到eclipse.exe并双击该文件。

Selenium IDE 42

第5步:配置工作区中选择开发位置。

Selenium IDE 43

第6步:打开如下图所示的Eclipse窗口。

Selenium IDE 44

配置Firebug和FirePath

要使用Selenium RC或webdriver来工作,我们需要根据自己的XPath或编号或名称等序列,以找出我们需要的工具/插件元素来定位元素。定位元素的各种方式被处理,详细在定位器章节。

步骤1:找到的网址:https://addons.mozilla.org/en-US/firefox/addon/firebug/ 并下载插件。

Selenium IDE 62

步骤2:将插件安装程序显示给用户,它是在单击“Install”按钮开始安装。

Selenium IDE 63

第3步:安装完成后,我们可以通过启动插件导航到“Web Developer”>>“Firebug”。

Selenium IDE 64

第4步:Firepath一个插件,它的工作原理中的萤火虫帮助用户抓住一个元素“Xpath”。导航到“https://addons.mozilla.org/en-US/firefox/addon/firepath/”安装Firepath

Selenium IDE 65

第5步:插件安装程序显示给用户,它是在单击“Install”按钮开始安装。

Selenium IDE 66

步骤6:现在推出“Firebug”导航到“Tools”>>“Webdeveloper”>>“Firebug”

Selenium IDE 67

示例

现在让我们了解如何使用Firebug和firepath一个例子。为了演示目的,我们将使用www.google.com并捕捉“google.com”文本框的属性。

步骤1:首先在下面的截图高亮点击箭头图标,将其拖动到我们想捕捉属性的对象。如下图所示,该对象的HTML / DOM将被显示。我们能够捕捉到的输入文本框的“ID”,我们可以进行交互。

Selenium IDE 68

步骤2:为了获取对象的XPath,去“firepath”选项卡,然后执行以下步骤。

  • 点击间谍图标。

  • 选择控制,想要捕捉的XPath

  • 将产生的所选择的控制的xpath

Selenium IDE 69

配置Selenium RC

现在,就让我们来看看如何配置Selenium 的远程控制。我们将了解如何开发在即将到来的章节关于Selenium RC的章节,但是现在我们明白它只是配置的一部分。

第1步:找到selenium 下载部分http://www.seleniumhq.org/download/,并通过点击它的版本号,如下图所示下载Selenium服务器。

Selenium IDE 45

第2步:下载后,我们需要启动Selenium服务器。这样做,打开命令提示符并导航到下载的JAR文件保持如下所示的文件夹。

Selenium IDE 46

第3步:启动服务器,使用命令“'java -jar <<downloaded jar name >>"如果已安装Java JDK正常,会得到一个成功的消息,如下图所示。现在,我们就可以开始写这将涉及在下一章Selenium RC的脚本。

Selenium IDE 47

配置Selenium的webdriver

现在,就让我们来看看如何配置Selenium webdriver。我们将了解如何开发在即将到来的章节,Selenium webdriver的剧本,但是现在我们明白它只是配置的一部分。

第1步:找到selenium 下载部分http://www.seleniumhq.org/download/和下载selenium 的webdriver通过点击它的版本号,如下图所示。

Selenium IDE 49

第2步:下载的文件是压缩格式,一个具有解压缩的内容映射到项目文件夹中。

Selenium IDE 49

步骤3:如下图所示,将解压缩后的内容将被显示。如何将其映射到项目文件夹,如何启动脚本会处理在webdriver的章节。

Selenium IDE 51


什么是Selenium - RC

Selenium-RC意思是Selenium的远程控制(又称Selenium1.0),是主要Selenium项目持续很长一段时间Selenium webdriver(Selenium2.0)才生效存在性。现在Selenium RC是很难使用在webdriver具有更强大的功能,但用户仍可以继续开发使用rc脚本。

它允许我们编写的编程语言,如Java,C#,Perl,Python和PHP创建更复杂的测试,如读写文件的全功率的帮助自动化的Web应用程序的UI测试,查询数据库,电子邮件的测试结果。

注:Selenium RC已被处理,只是为了理解图点和唯一webdriver进行详细说明,webdriver更强大和稳定。Selenium RC和webdriver比较在后面的章节讲解。

Selenium RC的结构

Selenium RC的工作方式是这样,客户端库使用Selenium RC服务器经过每个Selenium命令来执行通信。然后服务器通过Selenium命令来使用Selenium核心JavaScript命令浏览器。

在浏览器中执行使用JavaScript解释器的Selenium 命令。

Selenium IDE 52

Selenium RC分为两部分。

  • Selenium服务器启动和终止,除了它的浏览器解释并执行Selenese命令。它也通过拦截和验证器和测试的应用程序之间传递的HTTP消息作为HTTP代理。

  • 客户端库,它提供了编程语言(Java,C#,Perl,Python和PHP)和Selenium-RC服务器中的每一个之间的接口。

RC - 脚本

现在让我们写使用Selenium远程控制的示例脚本。让我们用 http://www.calculator.net/ 来理解 Selenium RC。我们将使用“百分比计算器”,即在“数学计算器”模块目前执行百分比计算。

第1步:启动Selenium 的远程控制(带命令提示符的帮助下)在环境设置一章解释。

第2步:启动Selenium RC,打开Eclipse,并创建“New Project”,如下图所示之后。

Selenium IDE 53

第3步:输入项目名称,然后单击“Next”按钮。

Selenium IDE 54

第4步:验证源,项目,库和输出文件夹,然后单击“Finish”。

Selenium IDE 55

第4步:右键单击“project”容器,然后选择“Configure Build Path”。

Selenium IDE 56

第5步:属性'selrcdemo“打开。导航到“Libaries”选项卡,并选择“Add External JARs”。选择我们下载了Selenium RC的jar文件,它会出现如下图所示。

Selenium IDE 57

第6步:将引用的库如下图所示显示。

Selenium IDE 58

步骤7:通过执行右键单击“src”文件夹中创建一个新的类文件,并选择“New”>>“class”。

Selenium IDE 59

第8步:输入类文件的名称,并启用“public static void main”,如下图所示。

Selenium IDE 60

步骤9:在文件夹结构中创建的创建的类,如下所示。

Selenium IDE 70

第10步:现在是时候进行编码。下面的代码有注释嵌入使读者了解。

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package testbro;

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

/**
 *
 * @author USER
 */
public class SDFB {

    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 5String result = selenium.getText(".//*[@id='content']/p[2]");if(result =="5"){System.out.println("Pass");}else{System.out.println("Fail");}}
    }
}

第11步:现在,让我们通过点击“Run”按钮执行该脚本。

Selenium IDE 72

第12步:脚本将开始执行和用户将能够看到在“Command History”选项卡上的命令历史记录。

Selenium IDE 71

步骤13:该应用程序的最终状态显示为如下。百分比的计算方法和它在屏幕上显示的结果如下所示。

Selenium IDE 73

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

Selenium IDE 74

第1步:找到selenium 下载部分http://www.seleniumhq.org/download/,并通过点击它的版本号,如下图所示下载Selenium服务器。

Selenium IDE 45

第2步:下载后,我们需要启动Selenium服务器。这样做,打开命令提示符并导航到下载的JAR文件保持如下所示的文件夹。

Selenium IDE 46

第3步:启动服务器,使用命令“'java -jar <<downloaded jar name >>"如果已安装Java JDK正常,会得到一个成功的消息,如下图所示。现在,我们就可以开始写这将涉及在下一章Selenium RC的脚本。

Selenium IDE 47

配置Selenium的webdriver

现在,就让我们来看看如何配置Selenium webdriver。我们将了解如何开发在即将到来的章节,Selenium webdriver的剧本,但是现在我们明白它只是配置的一部分。

第1步:找到selenium 下载部分http://www.seleniumhq.org/download/和下载selenium 的webdriver通过点击它的版本号,如下图所示。

Selenium IDE 49

第2步:下载的文件是压缩格式,一个具有解压缩的内容映射到项目文件夹中。

Selenium IDE 49

步骤3:如下图所示,将解压缩后的内容将被显示。如何将其映射到项目文件夹,如何启动脚本会处理在webdriver的章节。

Selenium IDE 51
 

Selenium - Selenese命令

一个命令指的是什么Selenium有执行,Selenium命令有三种类型。点击以下更多地了解这些命令。

定位器

元素定位器有助于Selenium识别HTML元素和命令指引用。所有这些定位器可以在Mozilla浏览器的firepath和firebug插件的帮助下识别ID。请参考环境设置一章。

  • identifier=id - 使用指定的“id”属性选择元素,如果没有匹配,选择的第一要素,其@name属性ID。

  • id=id 选择指定的“id”属性的元素。

  • name=name - 使用指定“name”属性选择第一个元素

  • dom=javascriptExpression - Selenium通过评估指定的字符串,它允许我们遍历使用JavaScript的HTML文档对象模型找到一个元素。用户不能返回一个值,但可以评估计算作为块的表达式。

  • xpath=xpathExpression - 找到使用XPath表达式的元素。

  • link=textPattern - 选择链接元素(锚点标记内),其中包含文字与指定模式匹配。

  • css=cssSelectorSyntax - 使用CSS选择器选择元素

    Selenium Webdriver

    webdriver自动化俗称Selenium 2.0测试Web应用程序工具。 webdriver使用不同的底层框架,Selenium 遥控器使用JavaScript的Selenium 核嵌入式已经在有一定的局限性的浏览器中。 webdriver直接交互而不与Selenium 远程控制,依赖于服务器上的任何中介的浏览器。它是用在以下方面:

    在Selenium开发者社区努力下,不断提高Selenium webdriver与Selenium的整合。

    • MULT浏览器测试,包括对不能很好地支持Selenium的远程控制浏览器改进的功能(硒1.0)

    • 处理多个帧,多个浏览器窗口,弹出窗口和警报。

    • 复杂的页面导航。

    • 高级用户导航,如拖动和拖放。

    • 基于AJAX的UI元素

    体系结构

    webdriver最好用一个简单的架构图,说明,如下图所示。

    Selenium IDE 92

    Selenium RC VS webdriver

    Selenium RC Selenium WebDriver
    Selenium RC的结构复杂,因为服务器需要启动在开始试运行前。 webdriver架构比Selenium RC简单,因为它控制着从操作系统层面的浏览器。
    Selenium服务器充当浏览器和Selenese的命令之间的中间人 webdriver直接相互作用,以在浏览器和使用浏览器的引擎进行控制。
    Selenium RC的脚本执行速度较慢,因为它使用了Javascript来与RC互动 webdriver的速度更快,因为它直接交互使用的浏览器。
    Selenium RC不能支持无头,因为它需要一个真正的浏览器一起工作。 webdriver可以支持无头执行
    它是一个简单的API 复杂,API相比,RC有点大
    减面向对象的API 纯粹的面向对象的API
    不能测试移动应用程序 可测试iPhone/Android应用程序

    使用webdriver脚本

    让我们了解webdriver如何工作。为了演示目的,我们将使用http://www.calculator.net/。我们将执行“百分比计算器”,这是位于“数学计算器”。我们已经下载了所需要webdriver的JAR。请参阅环境设置一章。

    第1步:从提取Eclipse文件夹中启动“Eclipse”。

    Selenium IDE 75

    第2步:点击“Browse”按钮选择工作区。

    Selenium IDE 76

    第3步:现在,创建“New Project”,从“File”菜单。

    Selenium IDE 53

    第4步:输入项目名称,然后单击“Next”。

    Selenium IDE 77

    第五步:进入Libraries选项卡,并选中所有的JAR包文件,我们已经下载(请参阅环境搭建章)。添加引用Selenium webdriver的库文件夹中的所有JAR,selenium-java-2.42.2.jar和selenium-java-2.42.2-srcs.jar

    Selenium IDE 78

    第6步:如下图所示创建包。

    Selenium IDE 79

    第7步:现在,让我们创建一个通过执行'Class'右键单击程序包,然后选择“New”>>“Class”

    Selenium IDE 82

    第8步:现在命名类,并让它设置为main方法

    Selenium IDE 80

    第9步:类概要如下所示。

    Selenium IDE 81

    步骤10:现在是时候编写代码了。下面的脚本更容易理解,因为它清楚地解释了一步,在嵌入的注释步骤。请看看“Locators”一章,了解如何捕捉对象的属性。

    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    public class webdriverdemo
    {
      public static void main(String[] args)
      {
    	WebDriver driver = new FirefoxDriver();
    
        //Puts a Implicit wait, Will wait for 10 seconds before throwing exception
    	driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    
        //Launch website
    	driver.navigate().to("http://www.calculator.net/");
    	
    	//Maximize the browser
    	driver.manage().window().maximize();
    
        // Click on Math Calculators
    	driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
      
        // Click on Percent Calculators
    	driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
    
    	// Enter value 10 in the first number of the percent Calculator
        driver.findElement(By.id("cpar1")).sendKeys("10");
    
        // Enter value 50 in the second number of the percent Calculator
        driver.findElement(By.id("cpar2")).sendKeys("50");
        
        // Click Calculate Button
        driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
    
        // Get the Result Text based on its xpath
        String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
        
    	//Print a Log In message to the screen
        System.out.println(" The Result is " + result);
        
    	//Close the Browser.
        driver.close();    
      }
    }
    

    第11步:以上脚本的输出将被打印在控制台。

    Selenium IDE 83

    最常用的命令

    下表列出了webdriver的最常用的命令以及它的语法,这将有助于我们开发webdriver脚本。

    Commmand 描述
    driver.get("URL") 导航到应用程序
    element.sendKeys("inputtext") 输入一些文本输入框
    element.clear() 从输入框清空内容
    select.deselectAll() 这将取消选择页面上的第一个选择所有选项:
    select.selectByVisibleText("some text") select the OPTION with the input specified by the user.
    driver.switchTo().window("windowName") Moving the focus from one window to another
    driver.switchTo().frame("frameName") swing from frame to frame
    driver.switchTo().alert() Helps in handling alerts
    driver.navigate().to("URL") Navigate to the URL
    driver.navigate().forward() To Navigate forward
    driver.navigate().back() To Navigate back
    driver.close() Closes the current Browser associated with the driver
    driver.quit() Quits the driver and closes all the associated window of that driver.
    driver.refresh() Refreshes the current page.
原文地址:https://www.cnblogs.com/mrcharles/p/11879831.html