如何让combox自动选取它的子项
我有一个Web页面,想让robot自动选择combox里的子项,如图1。是否是用SQASetProperty,如何使用?
我用Object Property抓取combox的属性,只有innerText, name, tagName, type之类的。它的Baseline里写的是innerText=Please select a value; name=subClassId; tagName=SELECT; type=select-one。但是它在脚本里的语句是Result = ComboBoxVP (CompareProperties, "Type=ComboBox;Name=subClassId", "VP=Object Properties")
所以我用的语法是这样的Result=SQASetProperty ("\;Type=ComboBox;Name=subClassId","innerText","Part"),希望让combox自动选择Part这个子项。但是调试的结果Result的返回值是1003,也就是它找不到这个object。我的语句是否有问题。 当我抓取windows应用程序的combox时,如图2。
用Object Property可以抓出ItemDat, ItemSelected, List, Text, Type之类的。其中ItemSelected里的就是当前所选择的子项的值,比如ItemSelected=Broker;List里有所有子项的列表,而Type的值是DropDownList。而它在脚本里的语句是Result = ComboBoxVP (CompareProperties, "Label=Type:", "VP=Object Properties2")这个我又该如何抓取?
我用Result=SQASetProperty ("Type=DropDownList;Label=Type:","ItemSelected","Part")结果返回值是1003,找不到。 还有一个问题,如图3。我测的这个Web页面菜单是Link,鼠标移到字上,比如Create,它就会自动显示下拉菜单。这是否也算是combox?要想选取它的子项,该如何操作? 有人可以帮助我吗? 第一个问题 如何让combox自动选取它的子项?
这里我自己写了一个html页面,就是简单模拟了一下功能!
<html>
<head>
<title>
Combobox
</title>
</head>
<body>
这是一个Combo的测试
<p><select size="1" name="D1">
<option>1</option>
<option>2</option>
<option>3</option>
</select></p>
</body>
</html>
Sub Main
Dim Result As Integer
Dim varStr as String
'Initially Recorded: 2004-9-1116:53:40
'Script Name: TestCom
StartBrowser "C:\Documents and Settings\Administrator\桌面\html.html", "WindowTag=WEBBrowser"
Window SetContext, "WindowTag=WEBBrowser", ""
Browser NewPage,"HTMLTitle=Combobox",""
'ComboBox Click, "Name=D1", ""
'ComboListBox Click, "Name=D1", "Text=2"
Result=SQAGetProperty("Type=ComboBox;Name=D1","innerText",varStr)
End Sub
以上脚本,返回值为innerText为1,2,3。这里要说明innerText返回值他是返回的是<p><select size="1" name="D1">
<option>1</option>
<option>2</option>
<option>3</option>
</select></p>
这段代码中select中下边中显示出来的关键字1,2,3。如果属性是outerHtml将是下边的属性值:<SELECT size=1 name=D1> <OPTION selected>1</OPTION> <OPTION>2</OPTION> <OPTION>3</OPTION></SELECT>
所以这说明robot识别combobox没有识别出来你的下拉选项!你可以通过一段代码就可以看出来,代码如下:
ComboBox Click, "Name=D1", ""
ComboListBox Click, "Name=D1", "Text=2"
针对这个问题,我们可以两个解决方法
1.纪录键盘移动!上下操作,可以设置属性!
2.下边的代码,可以是我针对我的网页实现combobox的,主要是针对selectindex属性设置
'$Include "sqautil.sbh"
Sub Main
Dim Result As Integer
Dim varStr as String
Dim List1Content() As String
'Initially Recorded: 2004-9-1116:53:40
'Script Name: TestCom
StartBrowser "C:\Documents and Settings\Administrator\桌面\html.html", "WindowTag=WEBBrowser"
Window SetContext, "WindowTag=WEBBrowser", ""
Browser NewPage,"HTMLTitle=Combobox",""
Result = SQASetProperty ("Type=ComboBox;Name=D1", "SelectedIndex", "2")
if Result=sqaSuccessthen
msgbox "ok"
else
msgbox result
end if
End Sub
[ Last edited by pcl2004_27 on 2004-9-11 at 17:55 ] 第二个问题
参数错误 ,type仍然是combobox,你用的属性其实是下拉列表显示后出现的那个里列表控件(这是由于combobox由两个控件组成,其中应该就是你的那个DropDownList),还有ItemSelected属性应该是索引值(好像,我没有vb的环境,所以没有试验)
注意:1003错误是找不到对象,这个要注意! 第三个问题
这个是不对的,从实现上这个是个菜单。而不是combobox,这点要注意,如果要获取他的属性,我觉得应该没有什么必要,而且实现上好像也有困难! 回去研究一下! 是该研究一下,我都是用
ComboListBox Click, "Type=ComboListBox;HTMLId=sb_ddlWorkDepartment", "Index=" & i
这种语名来选取择下拉框中的某一项的。其中变量I是index值
页:
[1]