我有以下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中的对象属性?我已使用“对象标识”对话框将_id
和html _id
属性添加到WebEdit
类。但是,当我使用Object Spy或Recorder时,都没有填写。
请注意,正在测试的网页包含大量这些文字输入,每个输入都有一个空白name
,但描述性_id
。我正在尝试将_id
放入WebEdit的属性中,以便我可以通过Browser("Browser").Page("Page"),WebEdit("_id:=Tenant")
引用特定的文本框。
答案 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