51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4086|回复: 10
打印 上一主题 下一主题

[Robot] 为什么我取不到下拉框内的值呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-10-20 09:47:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位达人,我现在想取得一个下拉框内的所有值,代码如下:
Sub Main
    Dim Result As Integer
    dim varStr as string
    'Initially Recorded: 2005-10-20  9:21:29
    'Script Name: temp3
    StartBrowser "http://10.200.1.66", "WindowTag=web"
   
    Window SetContext, "WindowTag=web", ""
    Browser NewPage,"HTMLTitle=集成环境",""
    HTMLLink Click, "HTMLText=设立部门", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=main",""
    Browser NewPage,"HTMLTitle=集成环境",""
    SQAGetProperty "Type=ComboBox;Name=select2","innerText",varStr
    msgbox varStr
   
End Sub
脚本回放时,msgbox中的内容是空的,没有取得任何值。但log里面显示是通过的,是怎么回事呢?

[ Last edited by ilovejolly on 2005-10-24 at 15:17 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2005-10-20 12:49:54 | 只看该作者

斑竹在吗?有没有谁可以帮帮我啊

我通过定位后
SQAGetProperty "HTMLTitle=集成环境;\;Type=HTMLFrame;HTMLId=main;HTMLTitle=集成环境;\;Type=ComboBox;Name=select2","innerText",varStr
msgbox Result
仍返回1003错误,为什么呢?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-10-20 13:46:15 | 只看该作者
杂志上有一篇介绍这个函数用法的文章
http://www.51testing.com/emagzine/No2_6.htm
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-10-20 16:56:01 | 只看该作者
这个我也看过,也是按照上面写的定义了父框架,但robot还是找不到,我感到很奇怪
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-10-20 17:06:43 | 只看该作者
你的函数格式,极可能是不正确的。这个格式包含两个方面,一个是属性,一个是定位控件的方法。你可以自己调试下,方法很多,思维可以灵活点。比如,首先不要说有框架的,找个没框架的web试,看能不能取到。这样来慢慢的定位问题。
希望对你有帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-10-22 11:51:40 | 只看该作者
我想问问各位,有没有遇到过这种情况,使用了iframe的网站,最外层的页面title和frame内的页面的title是一样的,这样robot能不能定位到main区域(frame)内的某个控件呢?我试了没有定位成功,返回1003错误。各位碰到过这种情况吗 ?如果真的不能定位的话,应该如何解决这样的问题呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-10-22 14:02:55 | 只看该作者
你定位的时候,带的参数是htmlid,这个是不一样的
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-10-24 11:06:24 | 只看该作者

还是没有取到下拉框内的值,望指点!

各位达人,我看了斑竹推荐的文章后,反复试验,始终未正确取到下拉框内的值。现我将代码和相关图片贴出来,希望各位给予指点!!

Sub Main
    Dim Result As Integer

    'Initially Recorded: 2005-10-24  9:55:07
    'Script Name: temp4
    StartBrowser "http://10.200.1.66/index.html", "WindowTag=web"
   
    Window SetContext, "WindowTag=web", ""
    Browser NewPage,"HTMLTitle=办公集成环境",""
    HTMLLink Click, "HTMLText=设立机关", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=main",""
    Browser NewPage,"HTMLTitle=办公集成环境",""
    ComboBox Click, "Type=ComboBox;Name=select2", ""
    'ComboListBox Click, "Type=ComboListBox;Name=select2", "Text=正科级"
    result=sqagetproperty("HTMLTitle=办公集成环境;\;Type=HTMLFrame;HTMLId=main;HTMLTitle=
办公集成环境;\;Type=ComboBox;Name=select2","innerText",strText)
    msgbox strText       'msgbox内的内容为空白,没有返回任何错误代码
End Sub

由于不好贴图,相关图片附于附件内

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-10-24 12:56:53 | 只看该作者
你这个层次关系对不对啊,用抓验证点的方式在这个下拉框上抓一下,把代码贴出来看一下呢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-10-24 13:48:22 | 只看该作者
参考一下这个代码

    Window SetTestContext, "Caption=Agile Advantage - Microsoft Internet Explorer", ""
'    Browser SetFrame,"Type=HTMLFrame;HTMLId=RightPane",""
'    Browser NewPage,"HTMLTitle=Select SubClass And Number",""
'    Result = ComboBoxVP (CompareProperties, "Type=ComboBox;Name=subClassId", "VP=Object Properties3")
    Window ResetTestContext, "", ""
   
    Result=SQAGetProperty("Caption=Agile Advantage - Microsoft Internet Explorer;\;Type=HTMLFrame;HTMLId=RightPane;\;Type=ComboBox;Name=subClassId","innerText", str1)
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2005-10-24 15:12:34 | 只看该作者

问题解决了

现在该问题已经解决了。我参考了robot help中的ComboBoxVP函数附带的一个example后,照着上面的写法试了一下,果然成功了。那个example中关于验证点的语句是这样写的:Result = ComboBoxVP (CompareData, "Type=HTMLFrame;HTMLId=Main;\;Type=ComboBox; Name=Selectlist", "VP=SELECTVP1;Wait=2,30")
大家注意看,该句的"Type=HTMLFrame;HTMLId=Main;\;Type=ComboBox; Name=Selectlist"-------它同样是定位一个frame内的combobox控件,但其并没有写第一个“HTMLTitle=”的内容,所以我联想到我这样的情况是不是同样也可以这样进行定位。结果我修改我上午的代码如下:
Sub Main
    Dim Result As Integer
    dim strText as variant
    'Initially Recorded: 2005-10-24  9:55:07
    'Script Name: temp4
    StartBrowser "http://10.200.1.66/index.html", "WindowTag=web"
   
    Window SetContext, "WindowTag=web", ""
    Browser NewPage,"HTMLTitle=办公集成环境",""
    HTMLLink Click, "HTMLText=设立机关", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=main",""
    Browser NewPage,"HTMLTitle=办公集成环境",""
    ComboBox Click, "Type=ComboBox;Name=select2", ""
    'ComboListBox Click, "Type=ComboListBox;Name=select2", "Text=正科级"
    result=sqagetproperty("Type=HTMLFrame;HTMLId=main;\;Type=ComboBox;Name=select2","innerText",strText)
    msgbox strText      
End Sub

运行,果然strText返回了期望的值。

现在这个result的写法跟司空斑竹写的result有所不同,也就是我原来的那种写法。原因现在还不太清楚,希望各位可以对照代码讨论讨论,相信会对有frame的页面的控件抓取会有所帮助,也希望碰到同样情况的同仁可以参考我的做法试一试,看能否成功。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 18:24 , Processed in 0.100411 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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