51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

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

[复制链接]

该用户从未签到

301#
发表于 2012-6-12 21:33:29 | 只看该作者
回复  zzxxbb112


    也就是说我在对象库中将对象属性开启正则表达式,在脚本中,例如: WebButton(" ...
fengdishudu444 发表于 2012-6-12 16:35


你改的是对象关键字,而不是识别属性,对象关键字是不影响对象识别的,影响的是识别属性,所以你需要在打开对象库后,添加完对象,你会看到右下方有对应的对象属性,找到需要模糊匹配的属性后,点击属性值会在右方出现一个小按钮,具体你可以看书中的讲解。还有希望能够请先仔细阅读对象库那章。了解了之后你就会明白了。
回复 支持 反对

使用道具 举报

该用户从未签到

302#
发表于 2012-6-18 21:52:27 | 只看该作者
两位老师好,请问对象封装接口与对象自身接口到底有什么区别啊?书127页看了几遍,越看越迷糊,能不能通俗点讲讲啊,谢谢老师
回复 支持 反对

使用道具 举报

该用户从未签到

303#
发表于 2012-6-19 10:55:37 | 只看该作者
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("关于百度").RightClick()
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("关于百度").FireEvent "onclick",,,micRightBtn

这两个语句应该是等价的,可是第二条语句执行的时候,出现的结果不是预期的结果,是网页的右键框,不是“关于百度”的右键框,请问是什么原因呢?谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

304#
发表于 2012-6-19 10:59:26 | 只看该作者
SystemUtil.Run "www.baidu.com"

For i = 0 to 9
        Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("关键字输入框").Set DataTable("演示", "Action1")
        Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
        Browser("百度一下,你就知道").Page("百度搜索_搜索结果页面").Image("到百度首页").Click
        Browser("百度一下,你就知道").Close
Next

这段代码执行的时候,只能取到DataTable中第一行数据,需要做一些修改,增加如下代码中的任一行都可以:
DataTable.SetCurrentRow(i)
DataTable.SetNextRow
回复 支持 反对

使用道具 举报

该用户从未签到

305#
 楼主| 发表于 2012-6-20 10:19:54 | 只看该作者
回复 307# 没翅膀的飞鱼


    个人觉得书中已经算讲的通俗的,其实别想太复杂,你这样想,一个对象有很多的小方法,非常多,但是很多都不太常用,所以QTP把常用的拎出来了
回复 支持 反对

使用道具 举报

该用户从未签到

306#
 楼主| 发表于 2012-6-20 10:21:56 | 只看该作者
回复 309# mlongmlong


    是的,这可能是书中的一个BUG,请问在第一页,我去确认下,如果是错误的话,在下一版中改掉,谢谢提醒
回复 支持 反对

使用道具 举报

该用户从未签到

307#
发表于 2012-6-23 08:41:48 | 只看该作者
余老师,书202页的例子:
'Step 1----------------------------------------------------------------------------

SystemUtil.Run  "www.51testing.com":Wait 10

Browser("micClass:=Browser").Navigate  "bbs.51testing.com"
Browser("micClass:=Browser").Page("micClass:=Page").Sync:Wait 5

'checkpoint start------------------>>>>>
checkURL = Trim(Browser("micClass:=Browser").Object.LocationURL)
If checkURL = "http://bbs.51testing.com/" Then
        Reporter.ReportEvent micPass,"Step1","Passed"
else
        Reporter.ReportEvent micPass,"Step1","Failed"
End If
'Een of  checkPoint<<<<<---------------

'Step 2 -------------------------------------------------------------------------
Browser("micClass:=Browser").OpenNewTab:Wait 1

testHWND = Browser("name:=新建选项卡").GetROProperty("hwnd")
MsgBox testHWND
Browser("name:=新建选项卡").Navigate "bbs.51testing.com":Wait 10

'Step3---------------------------------------------------------------------------
Browser("51Testing软件测试论坛").Page("51Testing软件测试论坛").Link("登录").Click

With Browser("51Testing软件测试论坛").Page("51Testing软件测试论坛")
                                                .WebEdit("username").Set  "ycg300164"
                                                .WebEdit("password").Set  "XXXXXXXX"
                                                .WebButton("登录").Click:Wait 10
end With
'checkpoint -------------------------------->>
oExist = Browser("51Testing软件测试论坛").Page("51Testing软件测试论坛").Link("退出").Exist (3)
If  oExist Then
        Reporter.ReportEvent micPass,"Step3","Passed"
Else
        Reporter.ReportEvent micFail, "Step3","Failed"
End If
'end of chencpoint <<-------------------------

'Step 4-------------------------------------------------

Browser("hwnd:=" &testHWND).Close

Browser("micClass:=Browser").Refresh:Wait 1
oExist = Browser("51Testing软件测试论坛").Page("51Testing软件测试论坛").Link("退出").Exist (3)

If  oExist Then
        Reporter.ReportEvent micPass,"Step4","Passed"
Else
        Reporter.ReportEvent micFail, "Step4","Failed"
End If



--------------------------------
运行时报错了:Object not visible
Line (43): "Browser("hwnd:=" &testHWND).Close".
为啥呀???????????????????????????????
回复 支持 反对

使用道具 举报

该用户从未签到

308#
发表于 2012-6-23 08:44:41 | 只看该作者
补充一下我的环境:Win7+IE8+QTP11
回复 支持 反对

使用道具 举报

该用户从未签到

309#
 楼主| 发表于 2012-6-25 15:32:28 | 只看该作者
回复 313# ycg300164


    似乎很多人问过这个问题了,我目测是环境问题,我当时写这段示例脚本的环境是IE7+WinXP+QTP10.0
回复 支持 反对

使用道具 举报

该用户从未签到

310#
发表于 2012-6-28 22:29:12 | 只看该作者
老师,我按照书320页的实例:
Dim WshShell
Set WshShell=CreateObject("WScript.Shell")
WshShell.Run "notepad"
While  Not WshShell.AppActivate("无标题-记事本")  :  wend
WshShell.SendKeys "helllo test"
Set WshShell=nothing
运行后可以打开记事本,但是打开记事本后一直处于While  Not WshShell.AppActivate("无标题-记事本")  :  wend中,发送的 hello test 并没有写入记事本,这是怎么回事啊?
回复 支持 反对

使用道具 举报

该用户从未签到

311#
发表于 2012-6-29 15:27:45 | 只看该作者
老师,我按照书320页的实例:
Dim WshShell
Set WshShell=CreateObject("WScript.Shell")
WshShell.Run  ...
没翅膀的飞鱼 发表于 2012-6-28 22:29



    你是英文操作系统吧,把标题改为Untitled - Notepad即可
回复 支持 反对

使用道具 举报

该用户从未签到

312#
发表于 2012-6-29 20:03:18 | 只看该作者
不是的啊,是win xp_32_cn操作系统,而且记事本可以打开,就是不能输入字符串,一直处在while循环中?是不是什么设置错了?谢谢老师
回复 支持 反对

使用道具 举报

该用户从未签到

313#
发表于 2012-6-30 09:32:50 | 只看该作者
老师,书202页
SystemUtil.Run  "www.51testing.com":Wait 10

Browser("micClass:=Browser").Navigate  "bbs.51testing.com"
Browser("micClass:=Browser").Page("micClass:=Page").Sync:Wait 5

checkURL = Trim(Browser("micClass:=Browser").Object.LocationURL)
If checkURL = "http://bbs.51testing.com/" Then
        Reporter.ReportEvent micPass,"Step1","Passed"
else
        Reporter.ReportEvent micPass,"Step1","Failed"
End If

为什么老在Reporter.ReportEvent micPass,"Step1","Passed"报错,提示General run error.
这是怎么回事啊?
有时也在Browser("micClass:=Browser").Navigate  "bbs.51testing.com"这句报General run error错误,点击Retry,又可以正常运行下去?
回复 支持 反对

使用道具 举报

该用户从未签到

314#
发表于 2012-6-30 09:33:58 | 只看该作者
回复 316# zzxxbb112

老师,我的是win xp_32_cn操作系统,不是英文操作系统,是不是其它配置错了?谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

315#
发表于 2012-7-2 09:44:39 | 只看该作者
回复 1# yujie6832


   亲爱的作者, 你好,你的这本书给予了我很大的帮助。现在在学习书中的场景恢复章节,请教一下,场景恢复生成的.qrs文件,是不是可以拿来在其他没有定义场景恢复的脚本中直接使用,从而不用每个脚本都去定义一遍场景?  在场景定义中,function文件的路径必须要是绝对路径吗?  路径变了的话,定义的场景还能用吗?
回复 支持 反对

使用道具 举报

该用户从未签到

316#
发表于 2012-7-2 11:06:04 | 只看该作者
回复 319# 没翅膀的飞鱼


    无标题 - 记事本  注意“-”前后的空格
回复 支持 反对

使用道具 举报

该用户从未签到

317#
发表于 2012-7-2 15:56:20 | 只看该作者
回复  yujie6832


   亲爱的作者, 你好,你的这本书给予了我很大的帮助。现在在学习书中的场景恢复章 ...
fengdishudu444 发表于 2012-7-2 09:44


可以共享所有其他脚本的,关于自定义场景恢复函数的绝对路径问题是QTP的bug,他本身无法设置相对路径,即使你已经设置了folder路径也无法生效,我这边提供一个办法:动态去生成一个函数库文件到C: 在跑完脚本后把这个文件删除。这样就可以很好的解决这个问题。
回复 支持 反对

使用道具 举报

该用户从未签到

318#
发表于 2012-7-2 15:57:03 | 只看该作者
回复  zzxxbb112

老师,我的是win xp_32_cn操作系统,不是英文操作系统,是不是其它配置错了?谢谢
没翅膀的飞鱼 发表于 2012-6-30 09:33



    那你这边有报错吗,我这边运行都是没有问题的。
回复 支持 反对

使用道具 举报

该用户从未签到

319#
发表于 2012-7-2 21:29:49 | 只看该作者
老师,书202页
SystemUtil.Run  "www.51testing.com":Wait 10

Browser("micClass:=Browser").Navigate  "bbs.51testing.com"
Browser("micClass:=Browser").Page("micClass:=Page").Sync:Wait 5

checkURL = Trim(Browser("micClass:=Browser").Object.LocationURL)
If checkURL = "http://bbs.51testing.com/" Then
        Reporter.ReportEvent micPass,"Step1","Passed"
else
        Reporter.ReportEvent micPass,"Step1","Failed"
End If

为什么老在Reporter.ReportEvent micPass,"Step1","Passed"报错,提示General run error.
这是怎么回事啊?
有时也在Browser("micClass:=Browser").Navigate  "bbs.51testing.com"这句报General run error错误,点击Retry,又可以正常运行下去?
回复 支持 反对

使用道具 举报

该用户从未签到

320#
发表于 2012-7-2 21:31:45 | 只看该作者
回复 321# fengdishudu444


  正解啊,谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 20:59 , Processed in 0.075916 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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