QTP 无法识别 Data Table里面带?问号的网址URL
测试网页log in之后的redirect功能,即在页面A,用户选择登陆,登陆之后,应该掉转回页面A。
我利用data table存储大约20个不同的页面A的URL
大多数页面的测试都能通过,但是如果页面的URL里面有问号则不能识别
下面是截取的部分代码
Dim PageURL
Dim SignInText
PageURL = DataTable("A", dtGlobalSheet)
SignInText = "Sign In"
'Wait till the home page is open, this may take a while
Browser("YouPlayoff - Create and").Page("YouPlayoff - Create and").Sync
'Navigate to the URLs listed in the Data Table
Browser("YouPlayoff - Create and").Navigate PageURL
'From the page opened above, click the "Sign In" link
Browser("YouPlayoff - Create and").Page("url:=" & PageURL).Link("text:=" & SignInText).Click
问题就出现在这一句,如果URL里面有问号,比如像http://bbs.51testing.com/frame.php?frameon=yes则QTP不能识别出这个PAGE,因为找不到这个PAGE,也就找不到SIGN IN这个link,从而不能对其进行点击。
如果数据表格里的URL没有问号,比如http://www.google.ca就可以识别 (我还发现url不能以 “/” 结尾,也就是说 http://www.google.ca/ 不能识别,但是 http://www.google.ca 就可以识别)。
请问有经验的大牛,我怎么解决url里面带问号的情况?谢谢!(另外,如果直接录制的话,就没有问题,在object repository里面url就是带问号的,但是可以识别,就是当带问号的url是从数据表格中读出来的就有问题了,但是因为我需要一下测试大约20个不同的网页跳转情况,所以必须用到数据表)
[ 本帖最后由 jraphicqesign 于 2010-6-4 11:28 编辑 ] 问号用斜杠转义一下
http://bbs.51testing.com/frame.php\?frameon=yes 谢谢你的回复,但是据我实验还是不行。
PageURL = DataTable("A", dtGlobalSheet)
Data Tabe里面数据是
http://testing.youplayoff.com/whatsup\?show=2
(这个国内打不开,但是不影响大家讨论问题)
原来的数据是http://testing.youplayoff.com/whatsup?show=2
我是按楼上的建议加了\
用下面这句
Browser("YouPlayoff - Create and").Navigate PageURL
打开的网页url是
http://testing.youplayoff.com/whatsup/?show=2
下面要进行的是在这一页找到一个名为Sign In的link
Browser("YouPlayoff - Create and").Page("url:=" & PageURL).Link("text:=" & SignInText).Click
依然无法识别Page。。。
肯定是URL里面那个问号的问题,因为不带问号的网页数据就能识别到。
[ 本帖最后由 jraphicqesign 于 2010-6-5 13:07 编辑 ] Browser("YouPlayoff - Create and").Navigate PageURL
到这一步骤的时候,网页能够打开么?如果能够打开,就不是url的问题,如果不行,你不用变量,直接写个地址,再打开看看呀
多输出一些变量结果,进行一下调试吧 PageURL = "http://bbs.51testing.com/frame.php?frameon=yes"
Browser("version:=inter.*").Navigate PageURL
If Browser("version:=inter.*").Page("url:=http://bbs.51testing.com/frame.php\?frameon=yes").Exist Then
Print "OK"
Else
Print "NOT OK!"
End If
回复 5# 的帖子
真的是十分感谢TIB同志,在你第二个回复的指导下,调试通过了。你第一次指导没有通过的原因如下,
我直接把网址中的?换成\?填入到data table中
Navigate实际浏览器里显示的网址是/?
在这种情况下,要再想利用data table里面存储的\?网址找到sign in link就找不到
因为/?和\?不一样
但是你第二次指导之后我发现
首先需要使navigate显示的网址还是?(说明data table里面存储的网址也是?)
但是利用Browser("YouPlayoff - Create and").Page("url:=" & PageURL).Link("text:=" & SignInText).Click打开sign in link时候需要
把PageURL, 也就是data table里面存储的网址从?转化为\?
我对代码进行了如下修改就可以找到sign in link了
PageURL = DataTable("A", dtGlobalSheet)
'data table里面存的还是http://testing.youplayoff.com/whatsup?show=2
Browser("YouPlayoff - Create and").Navigate PageURL
'If InStr (PageURL, "?") <> 0 Then
PageURL = Replace (PageURL, "?", "\?")
'End If
'msgBox (PageURL)
Browser("YouPlayoff - Create and").Page("url:=" & PageURL).Link("text:=" & SignInText).Click
再次感谢!
我有把所有测试中学到的问题解决方案总结在这里:
http://automation.youplayoff.com/
希望大家批评指正
[ 本帖最后由 jraphicqesign 于 2010-6-29 09:32 编辑 ]
页:
[1]