sourceIndex
これは属性を使用するソリューションです。これsourceIndex
はIEのみのプロパティですが、QTPはFirefoxでそれをシミュレートするため、同じスクリプトが両方のブラウザーで機能します。法案に適合しない場合などabs_x
、座標ベースのプロパティを使用することを選択できます。abs_y
source_index
次のコードは、尋ねられた質問に答え、それを一般的な関数にすることは、読者のための演習として残されています; o)
''#1. Create description for locator text
Set textD = Description.Create()
textD("micclass").Value = "WebElement"
textD("innertext").Value = ".*Item XYZ-123.*"
''#2. Find locator sourceIndex
set texts = Browser("B").Page("P").ChildObjects(textD)
Set text = texts(texts.Count-1) ' Take last text '
textIdx = text.GetROProperty("source_index") ' works for FF too '
''#3. Create description for button
Set buttonD = Description.Create()
buttonD("micclass").Value = "WebButton"
buttonD("value").Value = "Delete"
Set btns = Browser("B").Page("P").ChildObjects(buttonD)
''#4. Find first button after locator text
For i = 0 To btns.Count
If btns(i).GetROProperty("source_index") > textIdx Then
btns(i).Click ' Or whatever you want to do with it '
Exit For
End If
Next
このソリューションに関する注意事項:
- テキストを含む要素については何も想定していません。これが要素内のテキスト全体であることがわかっている場合は、
.*
sを削除するか、「htmlタグ」を追加してパフォーマンスを大幅に向上させることができます。
- そのため、説明に一致する最後の要素を取得します。最初の要素は
BODY
などになります。
- テキストの説明では、 "micclass" = "WebElement"を指定する必要があります。これは、デフォルトでは、興味がないと想定し
ChildObject
てsを除外するためです。WebElement