MengLing 发表于 2004-9-24 17:40:42

robot如何取页面输入域的文本内容

我想要在两个流程中建立关联,而第二个流程要取得第一个流程的编号做为开始才能进行下去.在第二个流程中,先输入第一个流程提供的编号,查询,显示该编号的链接,然后再点击这个链接进去操作。
我录制了一个完整过程,但是回放时失败了。因为HTMLLink Click, "Type=HTMLLink;HTMLText=TQAA200412010709000010", ""
这个语句中的htmltext中的编号仍是录制时编号,而回放时已是下一个编号。所以我想用SQAGetProperty取出输入的编号,用参数的形式取代htmltext中的编号。但是SQAGetProperty总是取不出输入域内的值。不知道我的这种方法行得通吗?有没有别的方法呢?

我在输入框中输入12345,然后打开inspector,里r里的hand拖了一下,在object properties and data的列表中,editbox,name=txtSoNo这一个的,html text,一项显示<input class=common maxlength=22 value=12345 name=txtSono>,看样子能取到我写的12345。可是为什么回放时取出不来呢?是不是回放还需要做什么设置?

很着急,请帮帮我!

MengLing 发表于 2004-9-27 10:36:37

经过试验,我发现一件事,公司内部所有浏览器版本对SQAGetProperty都取不出输入值来。但像google之类的外部网,就可以使用这个函数取数。为什么?难道SQAGetProperty不支持局域网内的浏览器版程序吗?

司空公子 发表于 2004-9-27 19:44:28

应该是你的SQAGetProperty语句错误,可能你要测的网页是有框架结构的。
关于SQAGetProperty的使用,你可以参考一下“請問Robot 如何快速使用座標定位”以及“如何让combox自动选取它的子项“这两个帖子。

MengLing 发表于 2004-9-28 10:34:35

终于有人理会我了*^_^*
我用inspector找了下,是有框架结构,可是我不太明白/的用法。
inspector显示的结构如下:
htmldocument,htmltitle=PICC P&C新一代综合业务处理系统
 htmlFrame,name=frasubmit
htmlframe,name=fracalculate
htmlframe,name=fratitle
 htmlframe,name=framenu
htmlframe,name=frainterface
   editbox,name=certino
htmlframe,name=franext
htmlframe,name=fracode

我想获取的数据在name=frainterface里面的name=certino中。
我的写法如下:
Result=SQAGetProperty("HTMLDocumnet,HTMLTitle=PICC P&C新一代综合业务处理系统;\;
HTMLFrame,Name=fraInterface;\;
HTMLDocumnet,HTMLTitle=查询条件页面;\;type=EditBox;Name=CertiNo","value",value_bh)
编译无语法错误。
但是执行时返回1002错误,Invalid syntax in recMethod.
请问该如何运用这个\号啊?

司空公子 发表于 2004-9-29 09:39:53

我的用法是这样的:
Result = SQAGetProperty("Caption=Agile Advantage - Microsoft Internet Explorer;\;Type=HTMLFrame;HTMLId=RightPane;HTMLTitle=Select SubClass And Number;\;Type=ComboBox;Name=subClassId", "innerText", str1)   

我一般不用inspector,而是用Object Properties直接抓取。可以得到验证点的语法,如下:
    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 Properties")
    Window ResetTestContext, "", ""
这样就可以读出我需要的部分,然后按照上面的语法进行整理。

像你用的那种方法,我也试过,可惜没有成功。返回也是1002,说明是无效的语法。如果仅仅是\用错了,应该是1003,表示找不到对象。最主要的还是要靠你多试几次,掌握了SQAGetProperty的用法是很有用处的。

MengLing 发表于 2004-9-29 11:59:32

用Object Properties直接抓取结果如下:
Window SetTestContext, "Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=fraInterface",""
    Browser NewPage,"HTMLTitle=查询条件页面",""
'    Result = EditBoxVP (CompareProperties, "Type=EditBox;Name=CertiNo", "VP=edit")
'    Window ResetTestContext, "", ""

语法写成:
Result = SQAGetProperty("Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer;\;Type=HTMLFrame;HTMLId=fraInterface;HTMLTitle=查询条件页面;\;Type=EditBox;Name=CertiNo", "innertext", str1)   


可是返回了1003错误。

司空公子 发表于 2004-9-29 15:12:29

你的Result语句前有这些话?
Window SetTestContext, "Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=fraInterface",""
    Browser NewPage,"HTMLTitle=查询条件页面",""
'    Result = EditBoxVP (CompareProperties, "Type=EditBox;Name=CertiNo", "VP=edit")
'    Window ResetTestContext, "", ""

我看你只是将最后两句注释了。要么你就全部注释掉,要么你把中间的几句注释掉,留下第一句和最后一句。因为Brower之类的语句可能会让你定位不准确,这样它就无法读到控件,也就是1003的错误。

MengLing 发表于 2004-9-29 21:01:58

不能注释掉,一注释掉的话连回放都有问题了。完整的脚本如下:
Sub Main
    Dim Result As Integer
    dim str1 as string
    'Initially Recorded: 2004-9-2921:00:24
    'Script Name: qaabh
   
    Window SetContext, "Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=fraInterface",""
    Browser NewPage,"HTMLTitle=查询条件页面",""
    EditBox Click, "Type=EditBox;Name=CertiNo", "Coords=32,5"
    InputKeys "1234{TAB}"
   
    Result = EditBoxVP (CompareProperties, "Type=EditBox;Name=CertiNo", "VP=Object Properties")
    Result = SQAGetProperty("Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer;\;Type=HTMLFrame;HTMLId=fraInterface;HTMLTitle=查询条件页面;\;Type=EditBox;Name=CertiNo", "innertext", str1)
    msgbox(str1)
End Sub

可是str1老取不到1234

司空公子 发表于 2004-9-30 00:44:45

在Result=SQAGetProperty 前加上
Window SetTestContext, "Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer", ""
Window ResetTestContext, "", ""

再试试
页: [1]
查看完整版本: robot如何取页面输入域的文本内容