针对同一个对象,科室使用多个ChildObjects吗?
以下是我的脚本,我想对所有的科室进行随机点击,text属性值我用的是正则表达式。因为每个科室名称后面结尾都不一样,有4种可能,所以我写个4个ChildObjects,以下是我的脚本:FunctionD1(DDept1)
Dim Dept1
Set Dept1 = Description.Create
Dept1("text").value = ".*门诊"
Dept1("html tag").value = "A"
Dept1("visible").value = True
Set DDept1 = Browser("****").Page("****").ChildObjects(Dept1)
End Function
Function D2(DDept2)
Dim Dept2
Set Dept2 = Description.Create
Dept2("text").value = ".*科"
Dept2("html tag").value = "A"
Dept2("visible").value = True
Set DDept2= Browser("****").Page("****").ChildObjects(Dept2)
End Function
Function D3(DDept3)
Dim Dept3
Set Dept3 = Description.Create
Dept3("text").value = ".*专家"
Dept3("html tag").value = "A"
Dept3("visible").value = True
Set DDept3= Browser("****").Page("****").ChildObjects(Dept3)
End Function
FunctionD4(DDept4)
Dim Dept4
Set Dept4 = Description.Create
Dept4("text").value = ".*\(.*\)"
Dept4("html tag").value = "A"
Dept4("visible").value = True
Set DDept4= Browser("****").Page("****").ChildObjects(Dept4)
End Function
Sub DDept()
Dim j
Dim keshi1
Dim keshi2
Dim keshi3
Dim keshi4
Call D1(Ddept1) '以“门诊”结尾的科室
keshi1=Ddept1.Count
Call D2(Ddept2) '以“科”结尾的科室
keshi2=Ddept2.Count
Call D3(Ddept3) '以“专家”结尾的科室
keshi3=Ddept3.Count
Call D4(Ddept4) '以“()”结尾的科室
keshi4=Ddept4.Count
If notkeshi1>0Then
If not keshi2>0 Then
If not keshi3>0 Then
keshi4=keshi4-1
Randomize
j=Int(((keshi4 - 0 + 1) * Rnd) + 0) ' Generate random value between 0 and keshi4
Ddept4(j).Click
else
keshi3=keshi3-1
Randomize
j=Int(((keshi3 - 0 + 1) * Rnd) + 0) ' Generate random value between 0 and keshi3
Ddept3(j).Click
End If
keshi2=keshi2-1
Randomize
j=Int(((keshi2 - 0 + 1) * Rnd) + 0) ' Generate random value between 0 and keshi2
Ddept2(j).Click
End If
else
keshi1=keshi1-1
Randomize
j=Int(((keshi1 - 0 + 1) * Rnd) + 0) ' Generate random value between 0 and keshi1
Ddept1(j).Click
End if
End Sub
为什么脚本只能执行第一个ChildObjects,以“门诊“结尾的科室,如果不满足这个条件就会报错?
附件是脚本的截图。 每次我发个帖子求助,问题总是自己解决了!
以下是成功的代码。
只要利用对象属性值的共性,加上正则表达式就可以随机选择了。
有问题有解决方案 赞一个
页:
[1]