在QTP中捕获HTML标记属性作为对象属性

时间:2013-03-27 18:15:43

标签: qtp

我有以下HTML标记,QTP正确识别为WebEdit对象:

<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">

如何将HTML标记中的_id属性转换为QTP中的对象属性?我已使用“对象标识”对话框将_idhtml _id属性添加到WebEdit类。但是,当我使用Object Spy或Recorder时,都没有填写。

请注意,正在测试的网页包含大量这些文字输入,每个输入都有一个空白name,但描述性_id。我正在尝试将_id放入WebEdit的属性中,以便我可以通过Browser("Browser").Page("Page"),WebEdit("_id:=Tenant")引用特定的文本框。

4 个答案:

答案 0 :(得分:3)

可以使用.Object.GetAttribute()函数获取HTML属性。这对于获得非标准属性(即“_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方法和属性。通过注册IE8中包含的Process Debug Manager(PDM),可以增强QTP调试。这将帮助您使用.Object发现QTP中可用的其他属性和方法。有关在QTP 11中增强调试的更多信息,请参阅以下文章:http://northwaysolutions.com/blog/qtp-11-how-to-enable-enhanced-debugging-features/

答案 1 :(得分: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.*")

答案 2 :(得分:0)

我不知道这是否是正确的方式,但我能够通过将所有WebEdit个对象加载到{{1}来破解我需要的东西键入他们的Dictionary

_id

答案 3 :(得分:0)

从浏览器文档中提取 lang 属性

tell application "System Events" activate set myFile to choose file with prompt ("Select a file to be processed") end tell set stringtofind to "GERMAN" display dialog "Please enter a value for " & stringtofind default answer "1" set x to text returned of the result as string tell application "TextEdit" open myFile -- Find and replace set every word of front document where it = stringtofind to x end tell