在RFT中如何等待浏览器处于Ready状态?

本文介绍了一种在RFT中实现等待浏览器启动并确保页面加载完毕的方法。通过使用自定义的waitForReady方法,结合对浏览器实例的查找及页面加载状态的判断,实现了对页面加载过程的有效控制。

在RFT中,如何等待一段时间,让浏览器启动并加载页面处于Ready状态?下面的代码可以实现:

closeIEBrowsers();

startBrowser("http://blog.youkuaiyun.com/testing_is_believing");

if(waitForReady())

System.out.println("Ready!");

else

System.out.println("NOT Ready!");

关闭所有IE浏览器的方法closeIEBrowsers,参见:

http://blog.youkuaiyun.com/Testing_is_believing/archive/2010/01/22/5233918.aspx

waitForReady方法如下所示:

public static boolean waitForReady() {

long maxWaitTimeMillis = 60000;

//get start time so can determine timeout

long startTime = System.currentTimeMillis();

TestObject to = findBrowser();

while ((to ==null) && ((System.currentTimeMillis() - startTime) < maxWaitTimeMillis))

{

sleep(10);

to = findBrowser();

}

if (to == null)

return false;

//get start time again for next timeout

startTime = System.currentTimeMillis();

while (!isReady(to) && (System.currentTimeMillis() - startTime) < maxWaitTimeMillis)

sleep(2);

if (isReady(to)) {

RationalTestScript.unregister(new Object[]{to});

return true;

}

else {

RationalTestScript.unregister(new Object[]{to});

return false;

}

}

通过获取测试对象的readyState属性值来判断页面是否加载完成:

public static boolean isReady(TestObject to) {

return Integer.parseInt(to.getProperty(".readyState").toString()) == 4;

}

查找浏览器实例的方法:

public static BrowserTestObject findBrowser() {

DomainTestObject domains[] = getDomains();

for (int i = 0; i < domains.length; ++i) {

try {

if (domains[i].getName().equals("Html")) {

//We found an Html domain.

TestObject[] topObjects = domains[i].getTopObjects();

if (topObjects != null) {

try {

for (int j = 0; j < topObjects.length; ++j) {

if (topObjects[j] instanceof BrowserTestObject)

{

return (BrowserTestObject)topObjects[j];

}

}

} catch (Exception e) {

System.out.println("Exception in findBrowser: " + e);

e.printStackTrace();

}

}

}

} catch (com.rational.test.ft.TargetGoneException e) {

//noop - continue if target has since disappeared

}

}

//if we get here, we didn't find a browser

return null;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值