51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: yujie6832
打印 上一主题 下一主题

[讨论] 2012年给力新作《精通QTP——自动化测试技术领航》试读以及答疑专用贴

[复制链接]

该用户从未签到

141#
发表于 2012-3-14 10:44:31 | 只看该作者

由于角色和下拉框控件识别不出来,想使用DOM,右边两幅图是角色和下拉框的HTML源代码,请问怎么写代码,希望能得到老师您的指点,嘿嘿。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

142#
发表于 2012-3-14 17:18:52 | 只看该作者
Set oTest = DotNetFactory.CreateInstance("ClassLibrary1.Class1","d:\我的文档\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll")
oTest.t1
oTest.t2

未能加载文件或程序集“file:///d:\我的文档\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
回复 支持 反对

使用道具 举报

该用户从未签到

143#
发表于 2012-3-15 08:38:47 | 只看该作者
Set oTest = DotNetFactory.CreateInstance("ClassLibrary1.Class1","d:\我的文档\Visual Studio 2010\Proj ...
zz45509 发表于 2012-3-14 17:18


检查下类写的是否正确,还有路径,然后重启QTP再试下。
回复 支持 反对

使用道具 举报

该用户从未签到

144#
发表于 2012-3-15 10:16:55 | 只看该作者
我和你的情况是一样的,这本书的内容和论坛上面的qtp连载基本上是一样的,你去看看就知道适合不不适合了啊回复 9# shijin880921
回复 支持 反对

使用道具 举报

该用户从未签到

145#
 楼主| 发表于 2012-3-15 10:29:04 | 只看该作者
回复 149# 德尔惠


    是的,我们非常真诚和给力地放出了书的55%的内容给51TESTING进行连载,连载的内容就是和书的内容一模一样的!我们的连载已经到了60了,其它最多的也才20,大多都是个位数!

我们相信这本书经得住大家的考验,所以我们敢放出那么多连载,希望能帮助到测试工程师,多少为这个行业做点贡献
回复 支持 反对

使用道具 举报

该用户从未签到

146#
发表于 2012-3-15 12:33:23 | 只看该作者
好想一口气看完~~呼呼
回复 支持 反对

使用道具 举报

该用户从未签到

147#
 楼主| 发表于 2012-3-15 16:29:55 | 只看该作者
回复 151# kaikaihi


    一口气吃太快要消化不良的哟,亲~
回复 支持 反对

使用道具 举报

该用户从未签到

148#
发表于 2012-3-16 10:10:16 | 只看该作者
Const micLong=3
Const micString=8
Set oExtern=CreateObject("Mercury.ExternObj")
oExtern.Declare micLong,"FindWindow","user32.dll","FindWindowA",micString,micString
hwndWindow=oExtern.FindWindow(vbNullString,"无标题 - 记事本")
Print hwndWindow
Set oExtern=Nothing

已经在References 注册了 但是还是报错 "System:找不到指定模块"
回复 支持 反对

使用道具 举报

该用户从未签到

149#
发表于 2012-3-16 16:42:20 | 只看该作者
有个问题呀,因为QTP的result文件需要在QTP的整个Test执行完毕之后才能生成出来,现在我想在脚本执行完毕之后自动调用另一个程序去读QTP的result文件,整个过程不能有人工干预,有没有一种比较好的方法? 在两位作者的书中的框架篇有提到这个,但是没有具体讲如何自动调用report引擎。我现在比较困惑的是如何在一次程序的运行中,既能使QTP生成出Report,又能自动调用report引擎?
还望提点提点,先谢了!!
回复 支持 反对

使用道具 举报

该用户从未签到

150#
发表于 2012-3-16 17:24:18 | 只看该作者
sResultsXML=_
"C:\Program Files\Mercury Interactive\QuickTest Professional\Tests\Test20\Res1\Report\Results.xml"
sDetailedXSL="C:\Program Files\Mercury Interactive\QuickTest Professional\dat\PDetails.xls"
ApplyXSL sResultsXML,sDetailedXSL,"c:\result.html"
Public Function AppXSL(ByVal inputXML,ByVal inputXSL,ByVal outputFile)
   sXMLLib="MSXML.DOMDocument"
   Set xmlDoc = CreateObject(sXMLLib)
   Set xslDoc = CreateObject(sXMLLib)

   xmlDoc.async = False
   xslDoc.async = False
   xslDoc.load inputXSL
   xmlDoc.load inputXML
   outputText = xmlDoc.transformNode(xslDoc,documentElement)
   outputText = Replace(outputText,"UTF-16","GB2312")
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set outFile = FSO.CreateTextFile(outputFile,True)
   outFile.Write outputText
   outFile.Close
   Set outFile = Nothing
   Set FSO = Nothing
   Set xmlDoc = Nothing
   Set xmlResults = Nothing
End Function


类型不匹配: 'ApplyXSL'
回复 支持 反对

使用道具 举报

该用户从未签到

151#
发表于 2012-3-18 11:13:29 | 只看该作者
Const micLong=3
Const micString=8
Set oExtern=CreateObject("Mercury.ExternObj")
oExtern.Declare m ...
zz45509 发表于 2012-3-16 10:10


需要把qtp安装目录下的bin路径拷贝到环境变量的PATH下即可,然后直接执行vbs即可
回复 支持 反对

使用道具 举报

该用户从未签到

152#
发表于 2012-3-18 11:16:21 | 只看该作者
本帖最后由 zzxxbb112 于 2012-3-18 11:18 编辑
有个问题呀,因为QTP的result文件需要在QTP的整个Test执行完毕之后才能生成出来,现在我想在脚本执行完毕之 ...
snakeshiy 发表于 2012-3-16 16:42


可以调用一个外部vbs来进行控制
while qtapp.test.isrunning


wend

当然本书框架中是直接从EXCEL来进行调用的,因此不会出现此问题,因为AOM中的qtapp.test.run方法执行后会一直等待Qtp脚本执行完毕后才会执行后续脚本。
回复 支持 反对

使用道具 举报

该用户从未签到

153#
发表于 2012-3-18 11:18:54 | 只看该作者
sResultsXML=_
"C:\Program Files\Mercury Interactive\QuickTest Professional\Tests\Test20\Res1\Report ...
zz45509 发表于 2012-3-16 17:24



    此脚本是vba脚本,而vbs脚本
回复 支持 反对

使用道具 举报

该用户从未签到

154#
发表于 2012-3-19 08:34:35 | 只看该作者
这本书对我们初学者还是很有帮助的哦。。。
回复 支持 反对

使用道具 举报

该用户从未签到

155#
发表于 2012-3-19 10:40:24 | 只看该作者
余老师啊,P141的实例为什么报错啊,帮忙看下哈,谢谢

Set baidu = Browser("micClass:=Browser").Page("micClass:=Page")
'Baidu.WebEdit("name:=wd").Set"嘿嘿"        '可以设置成功
msgbox baidu.Link("name:=新 闻").Exist      输出结果是true
Print baidu.Link("name:=新 闻").Exist          要么输出false 要么直接报错啊
Set baidu=Nothing

调了我好几个小时啊, 是不是exist不能被print方法输出啊
回复 支持 反对

使用道具 举报

该用户从未签到

156#
 楼主| 发表于 2012-3-19 12:03:03 | 只看该作者
回复 160# 406070803


    当然可以被PRINT输出,我看了你的描述+代码,我猜想是因为MSGBOX以后会弹出对话框,此时是激活对话框的,点掉以后,百度的页面就不在激活状态了,所以PRINT出来的要吗就是FALSE要嘛也可能是报错,因为你EXIST后面也没有设置个时间,你msgbox以后需要重新激活百度页面哦,baidu.activate wait 1,这样写,你试试
回复 支持 反对

使用道具 举报

该用户从未签到

157#
发表于 2012-3-19 13:58:49 | 只看该作者
这本书太棒了,书是2月22日买的,今天19号差不多一个月吧,系统的把书中的知识学了一遍,因为以前用过,书中在QTP层的知识点基本都已掌握,至于那些AOM,EOM,DOM,ADO,DotNETfactory,API只是对着书中的例子做了一遍,到最后两章,由于编程基础的问题,就开始迷迷糊糊了,但是还是照着做,只是代码可能没理解,到了框架时由于OFFICE的问题只是看了一遍,对框架进行了一个了解。最后当然还是运用到公司项目上去吧,公司有一个网页是给我负责了,但是开发一直没发布版本,我也没有鸟他们,就闷在那学这个,嘿嘿,最后感谢两位作者的对我提示问题的解答,当然最重要的是出了这本好书。一有问题我会继续问了,忘两位作者赐教。
回复 支持 反对

使用道具 举报

该用户从未签到

158#
发表于 2012-3-19 20:22:06 | 只看该作者
回复 161# yujie6832

谢谢余老师,我运行print的时候是把msgbox注释掉的
原因也找到了,应该是不兼容IE版本的问题,我试了QTP10.0+IE9和QTP9.2+IE8都报错
最后我复制到虚拟机qtp9.2+IE7就能运行了
回复 支持 反对

使用道具 举报

该用户从未签到

159#
 楼主| 发表于 2012-3-20 09:30:03 | 只看该作者
回复 163# 406070803


  IE8,IE9我倒从来还没用过呢,不过猜想也会有问题,似乎HP也出了相关的补丁
回复 支持 反对

使用道具 举报

该用户从未签到

160#
发表于 2012-3-20 10:59:33 | 只看该作者
使用循环时,每次的报告Reporter.reportEvent都是单独的页面,如何让他们显示在一个页面呢。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 10:08 , Processed in 0.088440 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表