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。可是为什么回放时取出不来呢?是不是回放还需要做什么设置?
很着急,请帮帮我! 经过试验,我发现一件事,公司内部所有浏览器版本对SQAGetProperty都取不出输入值来。但像google之类的外部网,就可以使用这个函数取数。为什么?难道SQAGetProperty不支持局域网内的浏览器版程序吗? 应该是你的SQAGetProperty语句错误,可能你要测的网页是有框架结构的。
关于SQAGetProperty的使用,你可以参考一下“請問Robot 如何快速使用座標定位”以及“如何让combox自动选取它的子项“这两个帖子。 终于有人理会我了*^_^*
我用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.
请问该如何运用这个\号啊? 我的用法是这样的:
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的用法是很有用处的。 用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错误。 你的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的错误。 不能注释掉,一注释掉的话连回放都有问题了。完整的脚本如下:
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 在Result=SQAGetProperty 前加上
Window SetTestContext, "Caption=PICC P&C新一代综合业务处理系统 - Microsoft Internet Explorer", ""
Window ResetTestContext, "", ""
再试试
页:
[1]