Selenium IDE工具总结范本模板Word格式文档下载.docx
《Selenium IDE工具总结范本模板Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Selenium IDE工具总结范本模板Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
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->
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(”60000”);
解决方法二:
将运行速度放慢,在页面加载时间前一句加如下语句
setSpeed(”1000"
)//运行速度放慢
当然,页面加载完之后,可以提交接钮语句之后,加如下语句,将运行速度恢复到正常。
$this-〉setSpeed("
0”)//恢复到正常执行速度
常见问题4:
登录时,没有发现某个元素。
[error]Elementid=usernamenotfound
如,我们虎扑网站,当前状态为未登录.先点击进入论坛页面。
然后点击“登录"
录制的脚本,在回放中,会错误。
没有该元素。
例如录制脚本:
ComandTargetValue
open/
clicklink=登录
typeid=usernameadmin
typeid=passwordadmin
………………
clickAndWaitlink=退出
$this-〉open("
/”);
$this—〉click(”link=登录"
$this-〉type(”id=username”,"
admin"
$this—>
type(”id=password"
,"
…………
$this->
click("
link=退出”);
回放时,到了用户名那一句,就会报无法找到元素的错误。