QTP:オブジェクトに必要なエラーがオブジェクトが有効な
-
05-09-2019 - |
質問
私は、以下のVBScript、再利用可能なアクション:
'Gather links
Browser("1").Navigate "http://InternalWebmail/something/inbox.nsf"
set oDesc = Description.Create()
oDesc("micclass").Value = "Link"
set links = Browser("1").Page("Webmail").ChildObjects(oDesc)
Dim links2
links2 = ""
'Filter out irrelevant links
For i = 0 To links.Count-1
If lcase(trim(links(i).GetROProperty("text"))) = lcase(trim(DataTable("ExpectedFrom", dtGlobalSheet))) Then
links2 = links2 + "," + links(i).GetROProperty("url")
End If
Next
Dim final
final = split(mid(links2,2),",") 'Remove leading comma and split into array
'For each link (i.e. for each E-mail received):
'Effectively giving a reusable action an input parameter, I hope
For i = 0 To final.Count - 1 'error: Object Required
DataTable("url","CheckHeader") = final(i)
RunAction "CheckHeader", oneIteration
Next
すべては、イブレア城、イブレアまでの私の宣言ループの下部にスニペット.あQTPだったらエラー"オブジェクトに必要な"と拒否される。
- 私界値58もった設定が0以前入力します。
- 最終的には、配列の6文字列は、各りましたが、修正いたしました。全ての値です。
- まmsgbox(最終のもの(2)、見る価値の最終のもの(2)として有効になります。
- isobject(最終(1))=false
- 最終(1)は、正しい値
- msgbox(最終的には無し)、msgbox(最終(1)は無し)の利回りも同じように誤動作してしまう。
その場合、配列がnullの場合は何らかの配列ています。住んでいます。何をQTPの特徴の一つです。
解決
はVBScriptの配列でCount
性質を持っていない、あなたは UBound
の<を使用する必要があります/ P>
x = split("how now brown cow")
' MsgBox x.Count ' error
MsgBox UBound(x) ' 3
.Count
は、最初のループのために働いた理由は、アレイを返さないChildObjects
、それはCOMコレクションオブジェクトを返すことです。あなたはSet
に割り当てる際links
なくするために割り当てるときにfinal
ステートメントを使用していた理由でもある。
所属していません StackOverflow