jun3355986 发表于 2013-8-29 11:25:16

关于 《精通QTP——自动化测试技术领航》书中202页的一个实例问题

代码如下:
'Step 1 ------------------------------------------------------------------------------------>
SystemUtil.Run "www.baidu.com"   '启动IE进入 指定网站
Browser("micClass:=Browser").Navigate "www.baidu.com"
Browser("micClass:=Browser").Page("micClass:=Page").Sync:Wait 1

checkURL=Trim(Browser("micClass:=Browser").Object.LocationURL)
If checkURL="http://www.baidu.com/" Then

Reporter.ReportEvent micPass,"Step 1","Passed"
Else


Reporter.ReportEvent micFail,"Step 1","Failed"
End If
'End ofcheckpoint<--------------------------------------------------------

'Step2--------------------------------------------------------------------------------->
' 通过<OperNewTab >方法打开一个新选项卡
Browser("micClass:=Browser").OpenNewTab:Wait 1
testHWND=Browser("name:=新建选项卡").GetROProperty("hwnd")
Browser("name:=新建选项卡").Navigate "www.baidu.com"


'Step 3 -------------------------------------------------------------------------------->
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("登录").Click
With Browser("百度一下,你就知道").Page("百度一下,你就知道")

.WebEdit("userName").Set "用户名"

.WebEdit("password").Set "密码"

.WebButton("登录").Click
End With
'checkpoint start ----------------------------------------->
oExist=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("用户名").Exist (3)
If oExist Then

Reporter.ReportEvent micPass,"Step3","Passed"
Else

Reporter.ReportEvent micFail,"Step3","Failed"
End If


'Step 4----------------------------------------------------------------------->
Browser("hwnd:="&testHWND).Close
Browser("micClass:=Browser").Refresh:Wait 1
'checkpoint start ----------------------------------------------------------->
oExist=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("用户名").Exist (3)
If oExist Then

Reporter.ReportEvent micPass,"Step4","Passed"
Else

Reporter.ReportEvent micFail,"Step4","Failed"
End If

原代码是进入51Testing进行测试的,因为网络不给力,进入51Testing很慢,所以改用Baidu进行测试 。

代码很简单,其中“用户名”、“密码”为百度的真实用户名和相应密码。对象抓取没问题。

问题是,step2中Browser("name:=新建选项卡").Navigate "www.baidu.com" 如红色标注所示,在新选项卡

中再次输入百度的地址跳转成功后,窗口重新定位到之前的选项卡,这里就有个疑问了,为什么它会重新定位到前一个Tab?

由于跳转到前一个Tab,所以运行到step4的第一步 Browser("hwnd:="&testHWND).Close 找不到对像出错。

我想提问下,怎样定位不指定的浏览器上的Tab?

jun3355986 发表于 2013-8-30 21:16:32

我是菜鸟,这问题怎么没人答复呢,求各位大神指点啊

jun3355986 发表于 2013-8-30 21:18:21

怎么没人回答这问题呢,求大神们指点我这只菜鸟啊

joykao 发表于 2013-9-2 09:00:14

骚年。。你的问题很多呢。。首先你打开的新tab有可能是没有名字的。。。这时候你去取句柄就会有问题了。。还有你如果你之前打开了一个百度页面。。。然后又打开了一个,据我所知2个页面会同步的吧。。。还有你一个描述,一会对象库,你确定确定对象库里有料啊。。。。思路不清晰。。。。。

jun3355986 发表于 2013-9-2 15:38:15

回复 4# joykao


    多谢老鸟指教,我要多多学习下行才

xiechunli 发表于 2013-9-2 15:48:21

你这个代码不能运行吧

jun3355986 发表于 2013-9-2 18:08:18

回复 6# xiechunli


    可以运行的,就是在step4第一步出错,提示找不到对像
页: [1]
查看完整版本: 关于 《精通QTP——自动化测试技术领航》书中202页的一个实例问题