Selenium IDE工具总结[共7页]

上传人:哈**** 文档编号:293593104 上传时间:2022-05-17 格式:DOC 页数:10 大小:48KB
返回 下载 相关 举报
Selenium IDE工具总结[共7页]_第1页
第1页 / 共10页
Selenium IDE工具总结[共7页]_第2页
第2页 / 共10页
Selenium IDE工具总结[共7页]_第3页
第3页 / 共10页
Selenium IDE工具总结[共7页]_第4页
第4页 / 共10页
Selenium IDE工具总结[共7页]_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Selenium IDE工具总结[共7页]》由会员分享,可在线阅读,更多相关《Selenium IDE工具总结[共7页](10页珍藏版)》请在金锄头文库上搜索。

1、Selenium IDE工具总结基本介绍:Selenium工具专门为WEB应用程序编写的一个验收测试工具。Selenium的核心:browser bot,是用JAVASCRIPT编写的。Selenium工具有4种:Selenium IDE, Selenium Control, Selenium Core这儿我们主要总结了Selenium-IDE工具Selenium-IDE只限于firefox浏览器中使用。Selenium命令分成三类:操作(action)、辅助(accessors)和断言(assertion):操作action: 模拟用户与 Web 应用程序的交互。一般用于操作应用程序的状态。

2、 如点击链接,选择选项的方式进行工作。如果一个动作执行失败,或是有错误,当前的测试将会停止执行。操作中常见命令有:open(打开页面)click(点击)clickAndWait(点击并等待) type(文本类型)select(选择下拉菜单)selectWindow(选择弹出窗口)pause(等待指定时间,以毫秒为单位,即要睡眠的时间)setSpeed(设定执行速度。以毫秒延迟间隔长度。默认没有延迟,即为0)setTimeout(指定等待动作完成的等待时间。默认为30秒。需要等待的动作包括了OPEN 和WAITFOR)goBack(模拟用户点击其浏览器上的“back”按钮)close(模拟用户点

3、击弹出窗体或表单标题栏上的”关闭”按钮) click与clickAndWait的区别:例如对比录制脚本: Comand Target click css=inputtype=submit /句一 clickAndWait css=inputtype=submiit /句二转成PHPUNIT后代码为: $this-click(css=inputtype=submit); /此句对应上面的 句一$this-click(css=inputtype=submit); /此句和下一句,对应上面的 句二 $this-waitForPageToLoad(30000);区别在于:clickAndWait后会有

4、一个默认的页面等待时间为30秒;而click没有等待时间; Andwait这个后缀,告诉我们,该命令将使浏览器向服务器产生一个请求,使 Selenium等待加载一个新的页面。辅助accessors:这是辅助工具。用于检查应用程序的状态并将结果存储到变量中。如:storeElementPresent(locator,variableName) 其中参数:locator 表示元素定位器;variableName 用于存储结果的变量名。即将locator定位到的状态存储到variableName变量中。如果该元素出现返回true,否则返回false可同断言一同使用。断言assertion:验证应用程

5、序的状态是否同所期望的一致。常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该 复选框是否被勾选。断言被用于三种模式: assert 、verify、waitfor Assert 失败时,该测试将终止。 Verify 失败时,该测试将继续执行,并将错误记入日显示屏 。也就是说允许此单个 验证通过。确保应用程序在正确的页面上。 Waitfor用于等待某些条件变为真。可用于AJAX应用程序的测试。如果该条件为真,他们将立即成功执行。 如果该条件不为真,则将失败并暂停测试。直到超过当前所设定的超时时间。 一般跟setTimeout时间一起用断言常用的有:assertLocat

6、ion(判断当前是在正确的页面)、assertTitle(检查当前页面的title是否正确)、assertValue(检查input的值, checkbox或radio,有值为”on”无为”off)、assertSelected(检查select的下拉菜单中选中是否正确)、assertSelectedOptions(检查下拉菜单中的选项的是否正确)、assertText(检查指定元素的文本)、assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)、assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)、assertAttr

7、ibute(检查当前指定元素的属性的值)、assertTable(检查table里的某个cell中的值)、assertEditable(检查指定的input是否可以编辑)、assertNotEditable(检查指定的input是否不可以编辑)、assertAlert(检查是否有产生带指定message的alert对话框)waitForElementPresent (等待检验某元素的存在。为真时,则执行。)具体实现中出现的问题:将录制的脚本转成PHPUNIT在服务器端运行总失败。开始要作如下工作:1. 在setUp()函数中添加语句:每次脚本运行,都将清空数据库的语句/home/uilddb.

8、sh;注意:用倒斜杠,数字1左边的键/根据项目需要而修改; 2. 将默认的浏览器代码修改:将$this-setBrowser(*chrome);改成 $this-setBrowser(*firefox);可以不用修改代码的方法:Selenium工具OptionsOptions选择Formats选项卡选择PHP-PHPUNIT将Environment里的浏览器改成firefox即可,这样子录制的脚本转化成PHP后,也就不用修改此部分代码了。3. 在第2点的基础上,在上面添加两句代码: $this-setHost(192.168.8.24);$this-setPort(4445); /此句可以不加

9、,根据自己服务器端口而定4. 录制的脚本中如有上传图片的路径。 也要根据服务器所在的环境作修改。如在同一环境下可不作修改。不在同一环境下,要将图片路径修改成服务器环境中图片所在的路径下。5. 录制的脚本一定要从登录开始录制。在没有解决COOIKE之前,必须这么做。运行脚本时,常见问题1:报错:ERROR: There was an unexpected Alert! ajax错误.错误原因:AJAX错误,没有找到ALERT提示的框架,因而报异常错误解决方法一:$this-click(css=inputtype=submit);这是一个“下一步”按钮。 进入的页面中,有AJAX。 可以此句前面添

10、加:setSpeed(1000)让其执行速度变慢1秒。 具体php代码: $this-setSpeed(1000) /从下一句开始,执行速度放慢 $this-click(css=inputtype=submit); $this-waitForPageToLoad(30000); $this-type(name=playerplayer1name, 元一); $this-setSpeed(0) /恢复到正常执行速度根本的解决方法: $this-waitForCondition(selenium.browserbot.getUserWindow().jQuery.active = 0, 3000)

11、; /此处3000,即限定的超时时间timeout。 $this-click(css=inputtype=submit);解释waitForCondition用法:waitForCondition(JavaScriptSnippet,time)- 在限定时间内,等待一段JavaScript 代码返回true 值,超时则停止等待 其中selenium.browserbot.getUserWindow().jQuery.active = 0这是一段javascript语句, 意思:检查得到的窗体里AJAX的活动数量为0时,则为0即无AJAX活动了,则为真,为真就可以继续向下运行。 反之,在限定的t

12、imeout 3秒时间内,活动数仍不为0,则会报错。常见的框架:jQuery : “jQuery.active”Prototype: “Ajax.activeRequestCount”Dojo : “dojo.io.XMLHTTPTransport.inFlight.length我们用的是jQuery框架,即写成jQuery.actiive3000是限时3秒。不正确的解决方法: for ($second = 0; ; $second+) if ($second = 60) $this-fail(timeout); try if ($this-isElementPresent(css=input

13、type=submit) break; catch (Exception $e) sleep(1); 此处用的方法:waitForElementPresent(locator,variableName)验证指定元素在页面上。此方法解决AJAX错误时无效。其检验元素的方法,可解决javascript的问题。常见问题4中会详解。常见问题2:服务器连接不上。解决方法:目前我们服务器上同时只能边接两台机器。所以,这儿的解决方法,只能限于两台哦。常见问题3:超时timeout错误原因:在服务器上跑,页面加载时间有时会变的慢解决方法一:页面加载时间修改一下。延长页面加载时间 原语句: $this-waitForPageToLoad(30000); 可更改为: $this-waitForPageToLoad(60000);解决方法二:将运行速度放慢,在页面加载时间前一句加如下语句$this-setSpeed(1000) /运行速度放慢当然,页面加载完之后,可以提交接钮语句之后,加如下语句,将运行速度恢复到正常。 $this-setSpeed(0) /恢复到正常执行速度常见问题4:登录时,没有发现某个元素。error Element id=username not found如,我们虎扑网站,当前状态为未登录。先点击进入论坛页面。然后点击“登录”,录制的脚本,在回放中,会错误。没有该元素

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号