sourceIndex
属性を使用する解決策は、sourceIndex
はIEのみのプロパティですが、QTPはFirefoxでそれをシミュレートするので、同じスクリプトが両方のブラウザで機能することに注意してください。 source_index
が請求書に適合しない場合は、abs_x
とabs_y
のような座標ベースのプロパティを使用することができます。
一般的な機能にそれを作ることは読者の課題として残して、尋ねたとして、質問を答えを次のコード; 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
もの:
- これは、要素のテキスト全体であることがわかっている場合は、
.*
を削除したり、パフォーマンスを向上させるために「htmlタグ」を追加することができます。私たちが説明に合う最後の要素を取る理由は、最初の要素は、我々があるため、デフォルトでは「micclass」=「WebElement」を指定する必要がテキストの説明ではBODY
など
なります
ChildObject
は、それらが不愉快であると仮定して、WebElement
をフィルタリングします。
WebElement( "html tag:= TR ...")。WebButton( "value:= Delete")?あなたのkludgeがBrowser()の行に沿っていると思いますか?私は実際にこれが物事を行うための素晴らしい論理的方法だと思っています。それはFirefox上ではうまくいかないようです。それに失敗すると、私は以下のモッティの解決策は妥当だと思う。 .Objectを使用しない場合:多くの回避策を使用してFFで同様の機能を実現することはできますが、必然的に重要でない限り、FFスクリプティングの矛盾をすべて克服するよりも、 QTPで – Xiaofu