質問

私は、以下の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ステートメントを使用していた理由でもある。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top