だから私は長い間これに対する答えを探していて、以下に書く一時的な解決策を思いつきましたが、もっとエレガントなものがあるかどうか疑問に思っていましたか?
作業中のアプリケーションには、10、25、50、100 の 4 つの値のいずれかを含む weblist があります。値を選択すると、もちろん選択した値に応じて、以下の Web テーブルに 10、25、50、または 100 の結果が表示されます。
たとえば、標準の Obj.Select "100" を呼び出すと、リスト ボックスが 100 に変更されますが、他には何も起こりません。イベントはトリガーされないため、以下の Web テーブルは同じままです。手動で 100 を選択すると、Web テーブルが更新されて 100 レコードが表示されます。
Web リストに対してさまざまなイベントを発生させようとしましたが、どれも Web テーブルを更新していないようです。
最終的に、私は以下の解決策に落ち着きました:
Public Function CustomSelect(obj, strValue)
Dim intCounter, strProperty, boolItemInList, strEnabledOrDisabled, arrAllItems, strAllItems
Dim xCoord, yCoord
If strValue = "@@" Then
Call AddComment("Passed in @@, skipping set function")
Exit Function
End If
Reporter.Filter = rfEnableErrorsOnly
strProperty= obj.GetTOProperty("name")
If strProperty= "" Then
strProperty= obj.GetTOProperty("html id")
End If
Reporter.Filter = rfEnableAll
If obj.exist(5) Then
XCoord = obj.GetROProperty("abs_x")
YCoord = obj.GetROProperty("abs_y")
strEnabledOrDisabled = obj.GetROProperty("disabled")
If strEnabledOrDisabled = 0 Or strEnabledOrDisabled = "0" Then
strAllItems = obj.GetROProperty("all items")
arrAllItems = split(strAllItems,";")
For intCounter = LBound(arrAllItems) to Ubound(arrAllItems)
'Obj.SendKeys "{DOWN}"
Obj.Select "#" & intCounter
If arrAllItems(intCounter) = strValue Then
Exit For
End If
Next
Else
Call ReportExpectedVsActual("Weblist is disabled: " & strProperty, False, True)
End If
Else
Call ReportExpectedVsActual("Weblist doesnt exist: " & strProperty, True, False)
End If
End Function
RegisterUserFunc "WebList", "CustomSelect", "CustomSelect"
少し面倒に見えることはわかっていますが、現時点で機能させるために考えられるのはそれだけです。他に何を試すべきか考えている人はいますか?
乾杯
ニック