Selenium IDE工具总结范本模板.docx

上传人:b****3 文档编号:2282476 上传时间:2022-10-28 格式:DOCX 页数:14 大小:24.49KB
下载 相关 举报
Selenium IDE工具总结范本模板.docx_第1页
第1页 / 共14页
Selenium IDE工具总结范本模板.docx_第2页
第2页 / 共14页
Selenium IDE工具总结范本模板.docx_第3页
第3页 / 共14页
Selenium IDE工具总结范本模板.docx_第4页
第4页 / 共14页
Selenium IDE工具总结范本模板.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Selenium IDE工具总结范本模板.docx

《Selenium IDE工具总结范本模板.docx》由会员分享,可在线阅读,更多相关《Selenium IDE工具总结范本模板.docx(14页珍藏版)》请在冰豆网上搜索。

Selenium IDE工具总结范本模板.docx

SeleniumIDE工具总结范本模板

SeleniumIDE工具总结

基本介绍:

Selenium工具专门为WEB应用程序编写的一个验收测试工具。

Selenium的核心:

browserbot,是用JAVASCRIPT编写的。

Selenium工具有4种:

SeleniumIDE,SeleniumControl,SeleniumCore

这儿我们主要总结了Selenium—IDE工具

Selenium-IDE只限于firefox浏览器中使用。

Selenium命令分成三类:

操作(action)、辅助(accessors)和断言(assertion):

操作action:

模拟用户与Web应用程序的交互.一般用于操作应用程序的状态。

如点击链接,选择选项的方式进行工作。

如果一个动作执行失败,或是有错误,当前的测试将会停止执行。

操作中常见命令有:

open(打开页面)

click(点击)

clickAndWait(点击并等待)

type(文本类型)

select(选择下拉菜单)

selectWindow(选择弹出窗口)

pause(等待指定时间,以毫秒为单位,即要睡眠的时间)

setSpeed(设定执行速度。

以毫秒延迟间隔长度.默认没有延迟,即为0)

setTimeout(指定等待动作完成的等待时间.默认为30秒。

需要等待的动作包括了OPEN和WAITFOR)

goBack(模拟用户点击其浏览器上的“back”按钮)

close(模拟用户点击弹出窗体或表单标题栏上的”关闭”按钮)

click与clickAndWait的区别:

例如对比录制脚本:

ComandTarget

clickcss=input[type=submit]//句一

clickAndWaitcss=input[type=submiit]//句二

转成PHPUNIT后代码为:

$this-〉click(”css=input[type=submit]");//此句对应上面的句一

$this-〉click("css=input[type=submit]");//此句和下一句,对应上面的句二

$this—>waitForPageToLoad("30000”);

区别在于:

clickAndWait后会有一个默认的页面等待时间为30秒;而click没有等待时间;

Andwait这个后缀,告诉我们,该命令将使浏览器向服务器产生一个请求,使

Selenium等待加载一个新的页面。

辅助accessors:

这是辅助工具.用于检查应用程序的状态并将结果存储到变量中.

如:

storeElementPresent(locator,variableName)

其中参数:

locator表示元素定位器;variableName用于存储结果的变量名。

即将locator定位到的状态存储到variableName变量中.

如果该元素出现返回true,否则返回false

可同断言一同使用.

断言assertion:

验证应用程序的状态是否同所期望的一致.

常见的断言包括:

验证页面内容,如标题是否为X或当前位置是否正确,或是验证该

复选框是否被勾选。

断言被用于三种模式:

assert、verify、waitfor

Assert失败时,该测试将终止。

Verify失败时,该测试将继续执行,并将错误记入日显示屏.也就是说允许此单个

验证通过。

确保应用程序在正确的页面上.

Waitfor用于等待某些条件变为真。

可用于AJAX应用程序的测试。

如果该条件为真,他们将立即成功执行.

如果该条件不为真,则将失败并暂停测试。

直到超过当前所设定的超时时间。

一般跟setTimeout时间一起用

断言常用的有:

assertLocation(判断当前是在正确的页面)、

assertTitle(检查当前页面的title是否正确)、

assertValue(检查input的值,checkbox或radio,有值为"on”无为”off")、

assertSelected(检查select的下拉菜单中选中是否正确)、

assertSelectedOptions(检查下拉菜单中的选项的是否正确)、

assertText(检查指定元素的文本)、

assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)、assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)、assertAttribute(检查当前指定元素的属性的值)、

assertTable(检查table里的某个cell中的值)、

assertEditable(检查指定的input是否可以编辑)、

assertNotEditable(检查指定的input是否不可以编辑)、

assertAlert(检查是否有产生带指定message的alert对话框)

waitForElementPresent(等待检验某元素的存在。

为真时,则执行.)

具体实现中出现的问题:

将录制的脚本转成PHPUNIT在服务器端运行总失败。

开始要作如下工作:

1.在setUp()函数中添加语句:

每次脚本运行,都将清空数据库的语句

`/home/www/selenium-php/yuezhan/rebuilddb.sh`;注意:

用倒斜杠,数字1左边的键

//根据项目需要而修改;

2.将默认的浏览器代码修改:

将$this->setBrowser("*chrome");

改成$this—〉setBrowser("*firefox”);

可以不用修改代码的方法:

Selenium工具→Options→Options→选择Formats选项卡→

选择PHP—PHPUNIT→将Environment里的浏览器改成firefox即可,

这样子录制的脚本转化成PHP后,也就不用修改此部分代码了.

3.在第2点的基础上,在上面添加两句代码:

$this—〉setHost(”192.168.8。

24”);

$this->setPort(4445);//此句可以不加,根据自己服务器端口而定

4.录制的脚本中如有上传图片的路径。

也要根据服务器所在的环境作修改。

如在同一环境下可不作修改。

不在同一环境下,要将图片路径修改成服务器环境中图片所在的路径下。

5.录制的脚本一定要从登录开始录制。

在没有解决COOIKE之前,必须这么做。

运行脚本时,

常见问题1:

报错:

ERROR:

TherewasanunexpectedAlert!

[ajax错误].

错误原因:

AJAX错误,没有找到ALERT提示的框架,因而报异常错误

解决方法一:

$this->click(”css=input[type=submit]”);这是一个“下一步”按钮。

进入的页面中,有AJAX。

可以此句前面添加:

setSpeed(1000)让其执行速度变慢1秒。

具体php代码:

$this—〉setSpeed(”1000")//从下一句开始,执行速度放慢

$this->click(”css=input[type=submit]”);

$this->waitForPageToLoad("30000");

$this—>type(”name=player[player1][name]",”元一");

$this—〉setSpeed(”0”)//恢复到正常执行速度

根本的解决方法:

$this-〉waitForCondition(”selenium。

browserbot.getUserWindow()。

jQuery。

active==0”,"3000");//此处3000,即限定的超时时间timeout。

$this-〉click(”css=input[type=submit]”);

解释waitForCondition用法:

waitForCondition(JavaScriptSnippet,time)

—在限定时间内,等待一段JavaScript代码返回true值,超时则停止等待

其中"selenium。

browserbot.getUserWindow().jQuery。

active==0”这是一段javascript语句,

意思:

检查得到的窗体里AJAX的活动数量为0时,则为0即无AJAX活动了,则为真,为真就可以继续向下运行.反之,在限定的timeout3秒时间内,活动数仍不为0,则会报错。

常见的框架:

jQuery:

“jQuery.active"

Prototype:

“Ajax。

activeRequestCount”

Dojo:

“dojo。

io。

XMLHTTPTransport.inFlight.length

我们用的是jQuery框架,即写成jQuery.actiive

3000是限时3秒。

不正确的解决方法:

for($second=0;;$second++){

if($second〉=60)$this->fail("timeout");

try{

if($this—〉isElementPresent("css=input[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]Elementid=usernamenotfound

如,我们虎扑网站,当前状态为未登录.先点击进入论坛页面。

然后点击“登录",

录制的脚本,在回放中,会错误。

没有该元素。

例如录制脚本:

ComandTargetValue

open/

clicklink=登录

typeid=usernameadmin

typeid=passwordadmin

………………

clickAndWaitlink=退出

转成PHPUNIT后代码为:

$this-〉open("/”);

$this—〉click(”link=登录");

$this-〉type(”id=username”,"admin");

$this—>type(”id=password","admin");

…………

$this->click("link=退出”);

回放时,到了用户名那一句,就会报无法找到元素的错误。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1