为了开发Selenium RC或webdriver脚本,用户必须确保他们有初始配置完成。有很多关联建立环境的步骤。这里将通过详细的讲解。
下载并安装Java
下载并配置Eclipse
配置Firebug和FirePath
配置Selenium RC
配置Selenium的webdriver
我们需要有JDK(Java开发工具包)安装序Selenium Webdriver/Selenium工作。让我们先来看看如何下载和安装Java。
步骤1: 导航到的网址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmll
步骤2:转到“Downloads”部分,然后选择“JDK Download”。
步骤3:选择“Accept License Agreement”单选按钮。
第4步:选择合适的安装。在这种情况下它是“Windows 7-64'位。点击相应的链接和exe档案保存到硬盘。
第5步:运行下载的exe文件和安装程序向导。点击“Next”继续。
第6步:选择功能,然后点击“Next”。
步骤7:安装程序提取和相同的进度显示在向导中。
第8步:用户可以选择安装位置,然后单击“Next”。
第9步:安装程序安装JDK和新的文件将被复制。
第10步:安装程序安装成功,并显示给用户。
步骤11:要验证是否安装成功,转到命令提示符,然后只需键入Java的一个命令。该命令的输出如下所示。如果Java安装不成功,或者如果它没有安装它会引发“unknown command”的错误。
第1步:根据操作系统体系结构导航到URL :http://www.eclipse.org/downloads/ 并下载。
第2步:点击“Download”按钮。
第3步:下载将是一个压缩格式。解压缩的内容。
第4步:找到eclipse.exe并双击该文件。
第5步:配置工作区中选择开发位置。
第6步:打开如下图所示的Eclipse窗口。
要使用Selenium RC或webdriver来工作,我们需要根据自己的XPath或编号或名称等序列,以找出我们需要的工具/插件元素来定位元素。定位元素的各种方式被处理,详细在定位器章节。
步骤1:找到的网址:https://addons.mozilla.org/en-US/firefox/addon/firebug/ 并下载插件。
步骤2:将插件安装程序显示给用户,它是在单击“Install”按钮开始安装。
第3步:安装完成后,我们可以通过启动插件导航到“Web Developer”>>“Firebug”。
第4步:Firepath一个插件,它的工作原理中的萤火虫帮助用户抓住一个元素“Xpath”。导航到“https://addons.mozilla.org/en-US/firefox/addon/firepath/”安装Firepath
第5步:插件安装程序显示给用户,它是在单击“Install”按钮开始安装。
步骤6:现在推出“Firebug”导航到“Tools”>>“Webdeveloper”>>“Firebug”
现在让我们了解如何使用Firebug和firepath一个例子。为了演示目的,我们将使用www.google.com并捕捉“google.com”文本框的属性。
步骤1:首先在下面的截图高亮点击箭头图标,将其拖动到我们想捕捉属性的对象。如下图所示,该对象的HTML / DOM将被显示。我们能够捕捉到的输入文本框的“ID”,我们可以进行交互。
步骤2:为了获取对象的XPath,去“firepath”选项卡,然后执行以下步骤。
点击间谍图标。
选择控制,想要捕捉的XPath
将产生的所选择的控制的xpath
现在,就让我们来看看如何配置Selenium 的远程控制。我们将了解如何开发在即将到来的章节关于Selenium RC的章节,但是现在我们明白它只是配置的一部分。
第1步:找到selenium 下载部分http://www.seleniumhq.org/download/,并通过点击它的版本号,如下图所示下载Selenium服务器。
第2步:下载后,我们需要启动Selenium服务器。这样做,打开命令提示符并导航到下载的JAR文件保持如下所示的文件夹。
第3步:启动服务器,使用命令“'java -jar <
现在,就让我们来看看如何配置Selenium webdriver。我们将了解如何开发在即将到来的章节,Selenium webdriver的剧本,但是现在我们明白它只是配置的一部分。
第1步:找到selenium 下载部分http://www.seleniumhq.org/download/和下载selenium 的webdriver通过点击它的版本号,如下图所示。
第2步:下载的文件是压缩格式,一个具有解压缩的内容映射到项目文件夹中。
步骤3:如下图所示,将解压缩后的内容将被显示。如何将其映射到项目文件夹,如何启动脚本会处理在webdriver的章节。
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命令来执行通信。然后服务器通过Selenium命令来使用Selenium核心JavaScript命令浏览器。
在浏览器中执行使用JavaScript解释器的Selenium 命令。
Selenium RC分为两部分。
Selenium服务器启动和终止,除了它的浏览器解释并执行Selenese命令。它也通过拦截和验证器和测试的应用程序之间传递的HTTP消息作为HTTP代理。
客户端库,它提供了编程语言(Java,C#,Perl,Python和PHP)和Selenium-RC服务器中的每一个之间的接口。
现在让我们写使用Selenium远程控制的示例脚本。让我们用 http://www.calculator.net/ 来理解 Selenium RC。我们将使用“百分比计算器”,即在“数学计算器”模块目前执行百分比计算。
第1步:启动Selenium 的远程控制(带命令提示符的帮助下)在环境设置一章解释。
第2步:启动Selenium RC,打开Eclipse,并创建“New Project”,如下图所示之后。
第3步:输入项目名称,然后单击“Next”按钮。
第4步:验证源,项目,库和输出文件夹,然后单击“Finish”。
第4步:右键单击“project”容器,然后选择“Configure Build Path”。
第5步:属性'selrcdemo“打开。导航到“Libaries”选项卡,并选择“Add External JARs”。选择我们下载了Selenium RC的jar文件,它会出现如下图所示。
第6步:将引用的库如下图所示显示。
步骤7:通过执行右键单击“src”文件夹中创建一个新的类文件,并选择“New”>>“class”。
第8步:输入类文件的名称,并启用“public static void main”,如下图所示。
步骤9:在文件夹结构中创建的创建的类,如下所示。
第10步:现在是时候进行编码。下面的代码有注释嵌入使读者了解。
第11步:现在,让我们通过点击“Run”按钮执行该脚本。
第12步:脚本将开始执行和用户将能够看到在“Command History”选项卡上的命令历史记录。
步骤13:该应用程序的最终状态显示为如下。百分比的计算方法和它在屏幕上显示的结果如下所示。
步骤14:在测试的输出被打印的Eclipse控制台上所示,因为我们已打印输出到控制台下面。实时输出写入到HTML文件或简单的文本文件。
第1步:找到selenium 下载部分http://www.seleniumhq.org/download/,并通过点击它的版本号,如下图所示下载Selenium服务器。
第2步:下载后,我们需要启动Selenium服务器。这样做,打开命令提示符并导航到下载的JAR文件保持如下所示的文件夹。
第3步:启动服务器,使用命令“'java -jar <
现在,就让我们来看看如何配置Selenium webdriver。我们将了解如何开发在即将到来的章节,Selenium webdriver的剧本,但是现在我们明白它只是配置的一部分。
第1步:找到selenium 下载部分http://www.seleniumhq.org/download/和下载selenium 的webdriver通过点击它的版本号,如下图所示。
第2步:下载的文件是压缩格式,一个具有解压缩的内容映射到项目文件夹中。
步骤3:如下图所示,将解压缩后的内容将被显示。如何将其映射到项目文件夹,如何启动脚本会处理在webdriver的章节。
一个命令指的是什么Selenium有执行,Selenium命令有三种类型。点击以下更多地了解这些命令。
Actions
Accessors
Assertions
元素定位器有助于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 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如何工作。为了演示目的,我们将使用http://www.calculator.net/。我们将执行“百分比计算器”,这是位于“数学计算器”。我们已经下载了所需要webdriver的JAR。请参阅环境设置一章。
第1步:从提取Eclipse文件夹中启动“Eclipse”。
第2步:点击“Browse”按钮选择工作区。
第3步:现在,创建“New Project”,从“File”菜单。
第4步:输入项目名称,然后单击“Next”。
第五步:进入Libraries选项卡,并选中所有的JAR包文件,我们已经下载(请参阅环境搭建章)。添加引用Selenium webdriver的库文件夹中的所有JAR,selenium-java-2.42.2.jar和selenium-java-2.42.2-srcs.jar
第6步:如下图所示创建包。
第7步:现在,让我们创建一个通过执行'Class'右键单击程序包,然后选择“New”>>“Class”
第8步:现在命名类,并让它设置为main方法
第9步:类概要如下所示。
步骤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步:以上脚本的输出将被打印在控制台。
下表列出了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. |