2

QTP がWebEditオブジェクトとして正しく識別する次の HTML タグがあります。

<input style="width: 228px;" aria-describedby="x-auto-0" _id="Tenant" name=""
tabindex="1" id="x-auto-23-input" class="x-form-field x-form-text x-form-invalid"
type="text">

_idHTMLタグからQTPのオブジェクトプロパティにプロパティを取得するにはどうすればよいですか? オブジェクト識別ダイアログを使用して、_idhtml _idプロパティの両方をWebEditクラスに追加しました。ただし、Object Spy または Recorder のいずれかを使用すると、どちらも入力されません。

テスト中のページには、これらのテキスト入力が多数含まれており、それぞれに空白nameですが説明的な_id. _idで特定のテキスト ボックスを参照できるように、 を WebEdit のプロパティに取得しようとしていますBrowser("Browser").Page("Page"),WebEdit("_id:=Tenant")

4

4 に答える 4

3

関数を使用して HTML 属性を取得できます.Object.GetAttribute()。これは、非標準の属性 (つまり、"_id") を取得する場合に特に便利です。

属性「id」はランタイム オブジェクト プロパティ「html id」と一致するため、GetROProperty()または上記のメソッドを使用して取得できます。

これらのメソッドの使用例を以下に示します。

Dim objUI    
Set objUI = Browser("Browser").Page("Page").WebEdit("WebEdit")
Print objUI.GetROProperty("html id")
Print objUI.Object.GetAttribute("id")
Print objUI.Object.GetAttribute("_id")
Set objUI = Nothing

記述的プログラミングを使用してオブジェクトにアクセスするには、attribute/表記法と正規表現を使用できます。例えば:

Set objUI = Browser("Browser").Page("Page").WebEdit("attribute/_id:=Tenant", "html id:=x-auto-\d*-input")

デフォルトでは、Web 要素の .Object メソッドとプロパティは、Debug Viewer で公開されません。IE8 に含まれている Process Debug Manager (PDM) を登録することで、QTP デバッグを強化することができます。これは、 を使用して QTP で使用できる追加のプロパティとメソッドを見つけるのに役立ちます.Object。QTP 11 での強化されたデバッグの詳細については、次の記事を参照してください: http://northwaysolutions.com/blog/qtp-11-how-to-enable-enhanced-debugging-features/

于 2013-03-27T19:11:54.893 に答える
2

識別子を使用して、カスタム属性 (プロパティ) を持つオブジェクトを取得できますattribute/customAttributeKey:=customAttributeValue。あなたの場合:

Set TenantWebEdit = Browser("Browser").Page("Page").WebEdit("attribute/_id:=Tenant")

これにより、説明を一意にしたい場合は、より多くの識別子を入れることもできます。

Set TenantWebEdit = Browser("Browser").Page("Page").WebEdit("attribute/_id:=Tenant", "class:=.*x-form-text.*")
于 2013-03-28T09:05:13.953 に答える
0

これが正しい方法かどうかはわかりませんが、すべてのWebEditオブジェクトをDictionaryキー付きの にロードすることで、必要なものをハックすることができました_id

Dim WebEdit_desc
Set WebEdit_desc = Description.Create
WebEdit_desc("micClass").value = "WebEdit"

Dim WebEdits
Set WebEdits = CreateObject("Scripting.Dictionary")

Dim WebEdit_list
Set WebEdit_list = Browser("Browse Catalog").Page("Add Tenant").ChildObjects(WebEdit_desc)
Dim i
For i = 0 to WebEdit_list.Count() - 1
    If NOT IsNull(WebEdit_list(i).Object.GetAttribute("_id")) Then
        WebEdits.Add WebEdit_list(i).Object.GetAttribute("_id"), WebEdit_list(i)
    End If
Next
Set WebEdit_list = Nothing

WebEdits.Item("Tenant").Set DataTable("Tenant", dtLocalSheet)
于 2013-03-27T23:19:38.317 に答える