在RFT中如何等待浏览器处于Ready状态?
2010-01-23 10:22
239 查看
在RFT中,如何等待一段时间,让浏览器启动并加载页面处于Ready状态?下面的代码可以实现:
closeIEBrowsers();
startBrowser("http://blog.csdn.net/testing_is_believing");
if(waitForReady())
System.out.println("Ready!");
else
System.out.println("NOT Ready!");
关闭所有IE浏览器的方法closeIEBrowsers,参见:
http://blog.csdn.net/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;
}
closeIEBrowsers();
startBrowser("http://blog.csdn.net/testing_is_believing");
if(waitForReady())
System.out.println("Ready!");
else
System.out.println("NOT Ready!");
关闭所有IE浏览器的方法closeIEBrowsers,参见:
http://blog.csdn.net/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;
}
相关文章推荐
- 如何设置提交后让页面处于等待状态
- Linux下如何查看哪些端口处于监听状态
- 【ERP】如何在主数据块处于新建或插入状态时禁止对明细数据块进行查询数据操作
- 如何让ListCtrl的CheckBox只有一个处于选中状态
- C#如何判断文件处于打开状态
- win8如何启用和关闭快速启动(默认处于启用状态)
- Linux系统下如何判断apache是否处于监听状态?
- asp.net 如何让DropDownList的某一项处于选中状态
- wpf多点触摸屏开发外包--分享wpf开发中如何确定Freezable是否处于冻结状态
- 如何停止处于stopping状态的windows服务
- 当设备处于充电状态时,如何取消屏幕唤醒功能
- 如何配置能使j2me开发环境处于正常状态
- 如何调试处于D状态的进程
- Win8无线网卡的承载网络功能处于不可用状态如何解决?
- 请教 JTable 里的单元格如何使得双击进入单元格后,单元格的内容处于全选中状态
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- 进程fork()两次---解决一个进程不必等待子进程终止,也不希望子进程处于僵死状态(一般是服务器进程fork())
- 如何停止处于stopping状态的windows服务 推荐
- Monitor线程操作(当一个线程中处于等待状态时,另外一个线程来解锁它的等待状态继续执行下去)
- 如何判断手机是否处于漫游状态?