软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>Mercury>>正文
QuickTestPro处理带有IFRAME的问题
文章出处:51tesing博客 作者:pcl 发布时间:2006-07-19

问题原文

我的web页最下面一块是引入iframe的版权页面.导致我动态读取不到iframe外的其它链接。
我的动态读取语句如下:
set oDesc = Description.Create()
oDesc("Class Name").value="Link"
set objColl = Browser("供应商").Page("供应商").ChildObjects(oDesc)
NumberOfLists =ObjectColl.Count()
-----页面上本来有十几个link的,但因为页面下面有iframe的原因,跟踪以上语句发现读取的是iframe里的link,始终读取不到iframe外的link , 请问如何解决?

这道问题核心是取得所有的页面链接然后进行处理,但是由于其中包含了iframe导致利用集合无法得到页面中的所有链接(link)对象。为了解决这个问题,我自己模拟了一个环境,写了带有iframe的页面,然后利用qtp进行处理。

html代码如下:

1.带有iframe的html代码

<html>
<body>
<p>这是一个测试</p>


<p>
<a href="
com">com</a>
</p>

<p>
<a href="
nethttp://edu.51testing.net">net</a>
</p>

<iframe src="包含的页面路径\url.html" width=100% name=comment frameborder=0 3onload="document.all['comment'].style.height=comment.document.body.scrollHeight"></iframe>

</body>
</html>

2.iframe包含的页面文件Html代码 -  url.html

<html>
<body>

<p>
<a href="
sohuhttp://www.sohu.com">sohu</a>
</p>

<p>
<a href="
hao123http://www.hao123.com">hao123</a>
</p>

</body>
</html>

qtp代码如下:枚举所有的页面link

Dim objPage
Dim objTag
Dim intTotalLink
Dim intCtr
Dim strLink
Dim strHref

Dim oDesc
Dim NumberOfiframe
'枚举网页中除了带有iframe里所有外部的链接
'#############################################
Set objPage = Browser("Browser").Page("Page").Object
Set objTag = objPage.GetElementsByTagName("A")
intTotalLink = objTag.Length - 1

For intCtr = 0 to intTotalLink
 strLink = objTag(intCtr).InnerText
 strHref = objTag(intCtr).Href
 msgbox  strLink
 msgbox strHref
Next
'#############################################
'枚举iframe内的所有链接
Set oDesc = Description.Create()
oDesc("html tag").Value = "iframe"
Set iframe = Browser("Browser").Page("Page").ChildObjects(oDesc)
NumberOfiframe = iframe.Count()
For i = 0 To NumberOfiframe - 1
    Set objPage = iframe(i).Object
 Set objTag = objPage.GetElementsByTagName("A")
 intTotalLink = objTag.Length - 1

 For intCtr = 0 to intTotalLink
  strLink = objTag(intCtr).InnerText
  strHref = objTag(intCtr).Href
  msgbox  strLink
  msgbox strHref
 Next
Next

Set  oDesc=nothing
'######################################

以上代码在中Window2000ad sp4+qtp8.2上调试通过。

备注:

 解决这个问题的方法很多,在51testing cpe工具使用培训的课程中就提到了解决这个问题的技术,我还写了一套代码同样解决这个问题。

 

原稿出处:

本文初衷为解决论坛中提到的问题,链接:http://bbs.51testing.com/viewthread.php?tid=35723&extra=page%3D1

问题原文

我的web页最下面一块是引入iframe的版权页面.导致我动态读取不到iframe外的其它链接。
我的动态读取语句如下:
set oDesc = Description.Create()
oDesc("Class Name").value="Link"
set objColl = Browser("供应商").Page("供应商").ChildObjects(oDesc)
NumberOfLists =ObjectColl.Count()
-----页面上本来有十几个link的,但因为页面下面有iframe的原因,跟踪以上语句发现读取的是iframe里的link,始终读取不到iframe外的link , 请问如何解决?

这道问题核心是取得所有的页面链接然后进行处理,但是由于其中包含了iframe导致利用集合无法得到页面中的所有链接(link)对象。为了解决这个问题,我自己模拟了一个环境,写了带有iframe的页面,然后利用qtp进行处理。

html代码如下:

1.带有iframe的html代码

<html>
<body>
<p>这是一个测试</p>


<p>
<a href="
com">com</a>
</p>

<p>
<a href="
nethttp://edu.51testing.net">net</a>
</p>

<iframe src="包含的页面路径\url.html" width=100% name=comment frameborder=0 3onload="document.all['comment'].style.height=comment.document.body.scrollHeight"></iframe>

</body>
</html>

2.iframe包含的页面文件Html代码 -  url.html

<html>
<body>

<p>
<a href="
sohuhttp://www.sohu.com">sohu</a>
</p>

<p>
<a href="
hao123http://www.hao123.com">hao123</a>
</p>

</body>
</html>

qtp代码如下:枚举所有的页面link

Dim objPage
Dim objTag
Dim intTotalLink
Dim intCtr
Dim strLink
Dim strHref

Dim oDesc
Dim NumberOfiframe
'枚举网页中除了带有iframe里所有外部的链接
'#############################################
Set objPage = Browser("Browser").Page("Page").Object
Set objTag = objPage.GetElementsByTagName("A")
intTotalLink = objTag.Length - 1

For intCtr = 0 to intTotalLink
 strLink = objTag(intCtr).InnerText
 strHref = objTag(intCtr).Href
 msgbox  strLink
 msgbox strHref
Next
'#############################################
'枚举iframe内的所有链接
Set oDesc = Description.Create()
oDesc("html tag").Value = "iframe"
Set iframe = Browser("Browser").Page("Page").ChildObjects(oDesc)
NumberOfiframe = iframe.Count()
For i = 0 To NumberOfiframe - 1
    Set objPage = iframe(i).Object
 Set objTag = objPage.GetElementsByTagName("A")
 intTotalLink = objTag.Length - 1

 For intCtr = 0 to intTotalLink
  strLink = objTag(intCtr).InnerText
  strHref = objTag(intCtr).Href
  msgbox  strLink
  msgbox strHref
 Next
Next

Set  oDesc=nothing
'######################################

以上代码在中Window2000ad sp4+qtp8.2上调试通过。

备注:

 解决这个问题的方法很多,在51testing cpe工具使用培训的课程中就提到了解决这个问题的技术,我还写了一套代码同样解决这个问题。


站内搜索
相关文章
◎QuickTestPro处理带有IFRAME的问题(续)
◎如何用QTP解析PDF
◎利用loadrunner测试ORACLE存储过程的性能
◎MERCURY最终用户管理:以最终用户为出发点,将业务和IT紧密结合
◎仅有基础架构管理是不够的:新的IT运作方式势在必行
◎美科利质量中心服务最佳实践白皮书
◎无代理监控:监控关键系统的全新典范
◎应用实施:卓越中心的发展
◎实施全面的J2EE监控和诊断解决方案
◎美科利客户的见解
◎改进质量和测试管理
◎错误警报不复存在:成功实施应用管理战略
◎代理和无代理系统管理的比较:运营总成本
◎高级测试管理的工具和技术
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎美科利和SAP:优化业务成果
◎四款主流测试工具的测试流程
◎WinRunner如何实现自动化测试
◎TD 7.x 升级到 TD 8.0 的一些经验(SQLSERVER 下)
◎winsock的buffer简单解析
◎何谓 Keyword-Driven Testing?
◎QuickTestPro中的快捷键
◎协议的选择的问题谈话
◎winsock协议错误编码解析
◎Loadrunner中参数的设置
◎使用LoadRunner来测试BEATUXEDO (LoadRunner 7.6)
◎主流测试工具介绍(3)
◎主流测试工具介绍(2)
◎主流测试工具介绍(1)
◎LoadRunner的一个解决方案
◎jboss tomcat weblogic websphere 性能对比测试
◎WinRunner 脚本标准格式
◎LoadRunner简化国泰航空测试流程
◎Winrunner经验总结
◎对脚本的建议
◎关于"RPC server is unavailable"的解决方案
◎TestDirector项目数据迁移完整过程
◎TD中Case的复用
◎WinRunner的问题整理
◎Winrunner TSL命令简介(四)
◎Winrunner TSL命令简介(三)
◎Winrunner TSL命令简介(二)
◎Winrunner TSL命令简介(一)
◎使用LoadRunner测试TUXEDO
◎TD7.6 字段中英文对照表
◎Winrunner Context Sensitive命令列表
◎LoadRunner监视的性能计数器
◎让LoadRunner走下神坛
热门文章
◎主流测试工具介绍(1)
◎Winrunner经验总结
◎主流测试工具介绍(2)
◎主流测试工具介绍(3)
◎Winrunner TSL命令简介(一)
◎WinRunner的问题整理
◎LoadRunner监视的性能计数器
◎Loadrunner中参数的设置
◎四款主流测试工具的测试流程
◎LoadRunner的一个解决方案
◎让LoadRunner走下神坛
◎WinRunner 脚本标准格式
◎LoadRunner简化国泰航空测试流程
◎WinRunner如何实现自动化测试
◎利用loadrunner测试ORACLE存储过程的性能
◎jboss tomcat weblogic websphere 性能对比测试
◎Winrunner TSL命令简介(四)
◎Winrunner TSL命令简介(二)
◎使用LoadRunner测试TUXEDO
◎TestDirector项目数据迁移完整过程
◎LoadRunner函数介绍
◎关于"RPC server is unavailable"的解决方案
◎Winrunner TSL命令简介(三)
◎使用Winrunner进行性能测试
◎TD7.6 字段中英文对照表
◎LoadRunner本机录制http协议程序遇到的问题以及解决方法
◎Winrunner Context Sensitive命令列表
◎WinRunner使用经验介绍
◎TD中Case的复用
◎对脚本的建议
◎MI测试工具介绍
◎QTP的登陆脚本设计
◎如何用QTP解析PDF
◎winsock协议错误编码解析
◎TD 7.x 升级到 TD 8.0 的一些经验(SQLSERVER 下)
◎QuickTestPro SP考试心得
◎loadruner报错:Step download timeout(120 seconds)的解决方法
◎使用LoadRunner来测试BEATUXEDO (LoadRunner 7.6)
◎QuickTestPro中的快捷键
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎高级测试管理的工具和技术
◎winsock的buffer简单解析
◎何谓 Keyword-Driven Testing?
◎LoadRunner学习——LoadRunner的安装
◎QTP的学习历程
◎使用LoadRunner来测试BEA TUXEDO(LoadRunner7.6)
◎LoadRunner函数介绍续
◎QTP的登陆脚本设计
◎关于"The RPC server is unavailable"的探讨及解决方案
◎改进质量和测试管理

Google提供的广告