学习参考资料:
http://www.yiibai.com/selenium/selenium_download_ide.html
Selenium的IDE(集成开发环境)是一个易于使用的Firefox插件,用于开发Selenium测试案例。
它提供了一个图形用户界面,用于记录使用Firefox浏览器,用来学习和使用Selenium用户操作,但它只能用于只用Firefox浏览器不支持其它浏览器。
然而,所记录的脚本可以被转换成由Selenium 支持多种编程语言和脚本可以在各种其它的浏览器,以及被执行。
下面是Selenium IDE方面的详细功能。
1. Selenium IDE 2. Selenium IDE 工具特点 3. Selenium IDE 测试创建 4. Selenium IDE 测试 5. Selenium IDE验证点 6. Selenium IDE模式匹配 7. Selenium 用户扩展 8. Selenium IDE不同的浏览器
1. Selenium IDE
步骤 1 : 启动Firefox,然后导航到URL - http://seleniumhq.org/download/。在Selenium IDE部分,单击显示如下所示当前版本号的链接。
步骤 2 : Firefox的附加组件通知弹出了允许和禁止的选项。用户必须允许安装。
步骤3 : 加载项安装程序发出警告不可信的附加组件的用户。点击“Install Now”。
备注:步骤1~3,也可以在FireFox通过添加组件来完成。
(1)打开FireFox浏览器,找到展开更多按钮。
(2)在更多面板里找到附加组件,打开附加组件页面。
(3)在搜索栏里查找selenium,然后安装组件即可。
步骤 4 : Selenium IDE现在可以通过浏览访问 'Tools' >> 'Selenium IDE'。
步骤 5 : 在Selenium IDE,也可以直接从快速访问菜单栏访问,如下图所示。
==========================================================================================================
学习小结:
1. 安装Selenium IDE的链接http://seleniumhq.org/download/ 有时候打不开,所以下载的时候,可以通过其他途径下载,比如百度搜索
【Selenium IDE】关键字,在CSDN等其他途径下载。
2. 除了从官网下载,也可以通过FireFox浏览器自身的插件扩展中心下载,我觉得这个方法更简单一些。
3. 安装部分的内容,难度系数而言,不是很大,所以我已经成功的在FireFox上安装OK。
接下来进一步学习Selenium IDE工具的使用。
写在前面:
本文主要分享的是,Selenium IDE的界面分布和使用。
前提:Selenium IDE安装完毕,参考【Selenium-WebDriver自学】Selenium-IDE安装和使用(一)
==========================================================================================================
2.Selenium - IDE 工具特点
Selenium IDE的特点列出了一个简单的工具的帮助下提示,如下图所示。
我们在学习任何一个工具时,首先需要了解工具的每个模块的功能和用途。
接下来,对Selenium IDE界面进行学习:
1. 菜单栏:
(1)文件:创建、打开、保存测试案例和测试案例集。
(2)编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。
(3)Options : 用于设置seleniunm IDE。
2. 测试地址输入栏:
可以输入被测网站的地址。
3. 速度控制:
控制测试用例的执行速度。
4. 运行所有:
运行一个测试用例集中的所有用例。
5. 运行:
运行当前选定的测试用例。
6. 暂停/恢复:
暂停和恢复测试用例执行。
7. 单步:
可以运行一个用例中的一行命令。
8. 录制:
点击之后,开始记录被测浏览器的操作。
9. 用例集列表:
记录所有的测试用例。
10. 测试脚本:
table标签:用表格形式展现命令及参数。
source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。
11. 运行结果:
查看脚本运行通过/失败的个数。
12. 参数信息:
当选中前命令对应参数。
13. 日志/参考/UI元素/Rollup:
(1)日志:当你运行测试时,错误和信息将会自定显示。
(2)参考:当在表格中输入和编辑selenese命令时,面板中会显示对应的参考文档。
(3)UI元素/Rollup:参考帮助菜单中的,UI-Element Documentation。
记录工具栏的功能进行说明如下:
==========================================================================================================
学习小结:
1. 界面的认识:首先感觉Selenium IDE测试工具的界面比较简单,相比之前做开发的的时候的XCode/Eclipse/Visual Studio等开发环境
而言,界面精小而简洁。
2. 常用的工具栏,播放/录制/调试等,在理解上也不是很难。所以感觉从开发转测试,没想象那么麻烦,至少在意识方面,没给自己太大
的压力。
接下来进一步学习Selenium IDE工具的使用。
写在前面:
安装和了解完Selenium IDE后,接下来实际的使用IDE的环境,简单的创建测试,通过录制/保存/执行等,进一步 了解自动化测试工具。
==========================================================================================================
3. Selenium IDE 测试创建
涉及使用Selenium IDE创建测试,如下面的步骤:
1. 记录和测试添加命令 2. 保存测试记录 3. 保存测试程序 4. 执行测试记录
1. 在测试中记录和添加命令
为了演示目的,我们将利用www.baidu.com,了解selenium的特点。
步骤 1 : 启动Firefox浏览器,然后导航到该网站 - www.baidu.com
步骤 2 : 从工具菜单中打开Selenium IDE,按下录制按钮-即在右上角。
步骤 3 : 在百度搜索框里输入:selenium,然后点击 "百度一下"。
步骤 4 : 然后,用户可以插入检查点通过右键单击Web元素,并选择 "Show all available commands" >> 选择"assert text id=kw"
步骤 5 : 所记录的脚本生成并被显示在以下脚本如下所示。
2. 保存记录的测试
第1步:保存测试用例可通过导航到 "File" >> "Save Test" 并将文件保存在选择的位置。该文件保存为.HTML为默认值。
该测试也可以保存扩展名为 .HTM,.SHTML和.XHTML。
保存测试套件
测试套件是可以作为一个单独的实体来执行测试的集合。
步骤1:创建一个测试套件可通过导航到 "File" >> "New Test Suite" 如下所示:
步骤2:该测试可以通过选择选项来记录,一个接一个 从 "File" 菜单中的"New Test Case" .
步骤3:个人测试使用单独的名称来保存 "Test Suite".
3.执行记录的测试
所记录的脚本,执行的任何脚本可通过单击在工具栏中的按钮 "Play entire suite" 或 "Play current test" 。
第1步: 运行状态可以可以看出,在显示的通过和失败的测试号状态窗格。
第2步:一旦步执行,用户可以看到结果在“Log”窗格。
第3步:在执行每个步骤之后,测试步骤的背景变成“绿色”,如果获得通过如果失败则为“红”,,如下图所示
==========================================================================================================
学习小结:
1. 通过IDE测试百度搜索关键字,简单的对IDE 工具的各个功能模块进行了了解。
感触:其实,有些东西没有想象的那么难,当我们遇到一个问题的时候,可以将问题分解,分而治之。
接下来进一步学习Selenium IDE工具的使用。
写在前面:
任何软件开发都离不开调试,测试也如此。
录制的脚本没有按照预想的“套路”实现,所以此时需要对录制的脚本进行调试,找出问题所在。
==========================================================================================================
4. Selenium IDE 调试
调试是为了发现和修复测试脚本,任何脚本开发的共同步骤是错误的处理。
为了使这一过程更加稳固,我们可以使用Selenium IDE的一个插件叫“Power Debugger”
步骤1 : 安装Selenium IDE的Power Debugger,导航到 https://addons.mozilla.org/en-US/firefox/addon/power-debugger-selenium-ide/ 然后点击 "Add to Firefox" 链接如下所示:
步骤2 : 现在启动 'Selenium IDE' 会发新的图标, "Pause on Fail" 在录制工具栏,如下图所示。点击它为 ON。 当再次点击,将它打开为"OFF"。
步骤3 : 用户可以打开 "pause on fail" 开或关在任何时间即使测试运行
步骤4 : 一旦测试在暂停的情况下,由于步骤中有一个失败,可以使用通常的暂停/步按钮继续执行测试。如果故障是在任何测试的情况下,最后一个命令执行不会被暂停。
步骤5 : 我们还可以使用断点来了解在这过程中到底发生了什么。插入一个特定步骤一个断点,执行从上下文“右键”,选择“toggle Break Yiibai”相关菜单。
步骤6 : 插入断点则显示暂停图标,特定步骤如下所示。
步骤7 : 当我们执行该脚本,该脚本将暂停执行插入断点的地方。这将有助于计算一个元素等的值/表示在用户执行过程中。
==========================================================================================================
学习小结:
1. 调试是必不可少的,在录制的时候,寻找的元素不对后者执行速度过快,导致寻找的元素找不到时,都会中断脚本的执行。此时,可以
通过调试来找到问题的所在。
在实际使用中,我发现,录制的脚本执行没有任何间歇,所以大部分情况下,部分脚本找不到元素或者定位错误。
接下来进一步学习Selenium IDE的高阶使用。
写在前面:
通过Selenium IDE录制的脚本,回放也正常执行。那么如何保证测试的结果和我们预期的结果一致呢?
可以通过工具设置验证点来实现。
==========================================================================================================
5. Selenium IDE验证点
测试用例需要检查一个Web页面的属性。这需要维护和验证命令。有两种方法可以验证点到任何脚本。插入记录模式中的任何验证点单击“右键”元素,并选择“Show all Available Commands”,如下图所示。
也可以通过执行“右键”,然后选择“Insert New Command”插入一个命令。
插入新的命令后,单击“Command”下拉列表,选择如下图所示的命令的列表提供适当的验证点
下面是主要用于验证的命令,这有助于我们检查一个特定步骤已通过或失败。
verifyElementPresent assertElementPresent verifyElementNotPresent assertElementNotPresent verifyText assertText verifyAttribute assertAttribute verifyChecked assertChecked verifyAlert assertAlert verifyTitle assertTitle
同步点
在程序执行时,应用程序可能由服务器的负载情况来决定响应速度,因此,它必需要应用和脚本同步。
下面是几个命令,我们可以用它来确保脚本和应用程序同步。
waitForAlertNotPresent waitForAlertPresent waitForElementPresent waitForElementNotPresent waitForTextPresent waitForTextNotPresent waitForPageToLoad waitForFrameToLoad
==========================================================================================================
学习小结:
1. 这部分的内容,我只是简单的使用了assertText来验证。可以将运行结果和预期结果对比,如果不通过,则会提示Failuers。
同时,这部分的校验以后在使用中,还会继续参照该文。
接下来进一步学习Selenium IDE的高阶使用。
写在前面:
当我们需要对动态字符或者随机字符进行测试时,可以使用模式匹配。
==========================================================================================================
6. Selenium - IDE模式匹配
在Selenium IDE中,如定位器,模式是selenium中经常使用的一种类型的参数。它允许用户描述特殊字符的模式。很多时候,我们想核实文字是动态的,在这种情况下,模式匹配是非常有用的。
模式匹配是用于所有验证点命令 - VerifyTextPresent,verifyTitle,verifyAlert,assertConfirmation,verifyText和verifyPrompt。
有三种方法来定义一个模式 - 通配符,正则表达式和精确。
通配符
通配已经在Linux或Windows使用的文件匹配模式,而寻找一个特定的文件类型,如* doc或*.JPG,大多数技术人员。但通配硒只支持三个特殊字符:*,?和[]。
* - 匹配任何数目的字符。
? - 匹配单个字符。
[ ] - 所谓字符类,可以匹配括号内发现的任何单个字符。 [0-9]匹配任何数字
要指定selenium 命令glob,前缀与关键字的模式'glob :“。例如,如果想搜索的文本“tax year 2013”或“tax year 2014”,那么可以使用“tax year *”来代替,如下图所示。
然而关键字的用法“glob:”是可选的,而指定文本模式,因为Selenium的匹配模式是默认。
精确模式
模式带有前缀“exact:'能匹配给定的文本。用户希望字符串值精确匹配,即没有globe 的操作符,我们可以使用“exact”的模式如下图所示。在这个例子中,操作符'*'将作为普通字符,而不是一个模式匹配通配符。
正则表达式模式
正则表达式是当中匹配技术中可用的模式是最有用的。Selenium 支持完整的Java语言支持reugular表达模式。因此,用户通过不再受限于*,?和[]匹配模式。
要使用正则表达式模式,我们需要与任何前缀“regexp:”或“regexpi”。前缀“regexpi”是不区分大小写的。 glob: 和exact: 模式是正则表达式模式的子集。一切完成使用 glob: 和exact:可以完成与正则表达式。
示例
例如,下面将测试,如果与ID“name”输入的字段中包含字符串“tax year”,'Tax Year' 或 'tax Year'。
==========================================================================================================
学习小结:
1. 感觉模式匹配的概念和SQL里的匹配方式很类似。不过目前还没有实际使用到,以后工作中,使用到了再进行分享。
接下来进一步学习Selenium IDE的高阶使用。
写在前面:
通过前几节的学习,已经对Selenium IDE有了初步的了解和基本的使用。
接下来,来学习Selenium的用户扩展,更强大的进阶内容。
==========================================================================================================
7. Selenium用户扩展
用户扩展,就是使用javaScript文件来创建定制化特性,添加新功能,通常情况下这种扩展就是定制化命令,但扩展并不仅限于命令。
这很容易扩展Selenium IDE加入自定义操作,断言和定位,策略,这是通过添加方法,在JavaScript的帮助下Selenium 对象原型。
在启动时,Selenium会自动寻找通过这些原型方法,使用名称的模式来识别哪些是行动,断言和定位器。
让我们使用JavaScript添加一个'while'循环在Selenium IDE。
步骤 1 : 要添加js文件,首先导航到https://github.com/darrenderidder/sideflow/blob/master/sideflow.js和复制脚本和地点将其保存在本地文件夹下为 “sideflow.js”,如下图所示。
第2步:现在启动“Selenium IDE”,然后导航到"Options" >> "Options",如下图所示。
第3步:点击“Browse”按钮下的“Selenium Core Extensions”区域产并指向我们已经保存在第1步中的js文件。
第4步:重新启动Selenium IDE。
第5步:现在将有机会获得一些更多的命令,如 "Label" "While"等
第6步:现在,我们创造出在Selenium IDE内的循环,这是能够执行的,如下图所示。
==========================================================================================================
学习小结:
1. 之前在虫师的博客里,学习了添加随机数的扩展。但是仅限于此,目前我还没有更进一步的应用。
接下来进一步学习Selenium IDE的高阶使用。
==========================================================================================================
参考地址:http://www.cnblogs.com/fnng/archive/2011/10/30/2223227.html
写在前面:
Selenium IDE是FireFox的集成插件,目前而言,只能通过FireFox来录制脚本。
但是实际工作中,我们可能需要测试IE或者Chrome等其他浏览器,那么,可以通过其他途径来实现这个愿望。详细看下文。
==========================================================================================================
8. Selenium IDE- 不同的浏览器
Selenium IDE脚本只能对火狐的工具Firefox插件运行测试。
使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动器或硒的远程控制指令码执行。
脚本只能对火狐的工具Firefox插件运行测试。
使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动器或硒的远程控制指令码执行。
更多关于Selenium的webdriver和Selenium的远程控制,在后面的章节有详细讲解。
第1步:打开Selenium IDE任何已保存的测试
第2步:定位到“File”菜单,并选择“Export Test Suite As”,而选择将被列出。
第3步:现在让我们导出脚本“WebDriver”,并将其保存为同样的名称。
第4步:如下图所示,显示保存webdriver文件。
package com.example.tests; import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.testng.annotations.*; import static org.testng.Assert.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; public class BaiduSearch1 { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @BeforeClass(alwaysRun = true) public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = "https://www.baidu.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void testBaiduSearch1() throws Exception { driver.get(baseUrl + "/"); // ERROR: Caught exception [unknown command []] driver.findElement(By.id("kw")).clear(); driver.findElement(By.id("kw")).sendKeys("selenium"); driver.findElement(By.id("su")).click(); } @AfterClass(alwaysRun = true) public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } private boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } } private boolean isAlertPresent() { try { driver.switchTo().alert(); return true; } catch (NoAlertPresentException e) { return false; } } private String closeAlertAndGetItsText() { try { Alert alert = driver.switchTo().alert(); String alertText = alert.getText(); if (acceptNextAlert) { alert.accept(); } else { alert.dismiss(); } return alertText; } finally { acceptNextAlert = true; } } }
以上为IDE导出的Java代码,可以通过其他途径来执行测试用例,运行到Chrome等浏览器上。
==========================================================================================================
学习小结:
1. 关于Selenium IDE的内容学习就告一段落了。
Selenium IDE执行的局限性和录制脚本/回放脚本等,包括自己去面试的时候提到的录制脚本,被别人嘲笑,所以决定学习更多的关于Selenium
方面的内容。
那么接下来,将学习Selenium/WebDriver的实际开发,相信会是另外一番学习体验。