2

私はQTP新生児です。

オブジェクトリポジトリを使用して、次のようなステートメントを記述できます。

If Trim(DataTable.Value("ExpectedValue")) = "" _
  And Not Browser("MyApp").Page("MyPage").WebElement("MissingDataBanner").Exist  Then
    Reporter.ReportEvent micFail, "MissingDataBanner", "Element expected"
End If

記述的プログラミングを使用して、存在する要素のプロパティを確認できますが...

If Not Browser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Exist Then
  Reporter.ReportEvent micFail, "My Data Field", "Element does not contain expected value"
End If

私がこのようなことを試みるとき:

If Trim(DataTable.Value("ExpectedValue")) = "" _
  And Not Browser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Exist  Then
    Reporter.ReportEvent micFail, "MissingDataBanner", "Element expected"
End If

もちろん、QTPはWeb要素を見つけることができず、Existメソッドにアクセスしようとしたときにテストエラーが発生します。

記述的プログラミングを使用して、要素がページに存在しないことを確認する方法はありますか?

4

2 に答える 2

2
  1. 最初のifステートメント、特にこの行を見てくださいIf Trim(DataTable.Value("ExpectedValue")) = ""。「ExpectedValueが空で、オブジェクトが存在しない場合は、エラーを報告します」と言っています。これは本当に必要なことですか、それとも「空でない」でExpectedValueをテストしますIf Trim(DataTable.Value("ExpectedValue")) <> ""か。

  2. VBScriptでの連結は&、ではなく記号を使用して行われます。+このステートメントBrowser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Existはに解決されBrowser("MyApp").Page("MyPage").WebElement(0).Exist、予期しない結果が発生します。"text:=" & DataTable.Value("ExpectedValue")代わりに使用してください。

  3. QTPにはいくつかの癖があり、オブジェクトの.existプロパティのテストはその1つです(ここではQTP10について話しています)。奇妙に聞こえますが、場合によっては(残念ながら、予備の分がある場合は、それを再現しようとします)、.exist条件ステートメントでFalseとしてネイティブに認識されないFalseを返します。オブジェクトが存在しないかどうかをテストする最良の方法は、existプロパティがfalseに等しいかどうかを明示的にテストすることですIf Browser("foo").Page("bar").WebElement("xizzy").exist = False then print "Object does not exist!)

  4. ヒント:テストを高速化するには、タイマー付きの存在を使用できます。これを使用する.exist(0)と、テスト設定で設定した同期タイマーを使用せずに、オブジェクトの存在がすぐにテストされます。

これは正確な問題の直接的な解決策ではないかもしれませんが、より信頼性の高い結果が得られ、最終的には解決策につながります。メソッドでオブジェクトが存在しないかどうかをテストすること.Existは、これを行う正しい方法です。エラーが発生した場合は、他に問題があります。たとえば、ブラウザまたはページは存在しません。

于 2012-11-08T07:45:49.337 に答える
0

こんにちはこれがあなたを助けることを願っています..ありがとう..

 Set NavigationTab = Browser ().Page().WebElement()
 CheckExist ( 10 , NavigationTab )


Function CheckExist ( intDelay , object )

object.RefreshObject

' -- validating the object is exist or not.
  If object.Exist ( intDelay ) Then

    CheckExist = True

  Else

    CheckExist = False

  End If

 End Function
于 2014-01-21T14:47:53.087 に答える