gpt4 book ai didi

QTP - 在网络插件扩展性中,我可以使用自定义属性来识别对象吗

转载 作者:行者123 更新时间:2023-12-04 19:19:47 27 4
gpt4 key购买 nike

我们为 QTP 开发了一个自定义插件来自动化 Extjs 应用程序。最近我们了解到我们开发插件所采用的方法是不可靠的。我们使用显示在 DOM 树中的 CSS 类来帮助 QTP 识别 ExtJS 应用程序中的每个对象。最近我们的开发人员告诉我们,这种依赖 CSS 类的方式是一个问题,因为这些 CSS 类不断变化。例如:在 ExtJS web 应用程序中,登录按钮控件的 DOM 在浏览器中看起来像这样(只是一个轮廓,不完全像下面那样)

<a class = x-btn x-box-item x-btn-default-small id=button-1086 unselectable = on style = margin>
<span class = x-something>
<span class = y-something>Login</span>

因此,在自定义插件的工具包配置 xml 中,我们像这样编写按钮的标识

  <Conditions type="IdentifyIfPropMatch">
<Condition prop_name="classname" expected_value="x-btn" is_reg_exp="true" />

我们使用 Javascript 提取出现在上面 span 标签中的标签 Login,并将其分配给我们自定义 Extjsbutton 控件的 title 属性。所以当我使用QTP录制时,生成的VBScript代码是

         Browser("..").Page("..").Extjsbutton("Login").Click

在最近发布的应用程序中,DOM 中的按钮类名称从 x-btn 更改为 x-fastbutton。使用该 QTP 无法识别按钮对象。

我们要求应用程序开发人员为应用程序中的每个控件提供一些新属性,这些属性是常量,以便 QTP 可以使用它们来识别应用程序中的每个对象。应用开发者给了我们三个新属性,新属性看起来像这样

  <a id = 'button-123', class = 'x-button' , uft-xtype = Button, uft-isComponent = true, 
uft-extclass = Ext.button.Button>

我的问题是,我们可以直接在工具包配置 xml 的 Condition 元素中使用这些新属性及其值吗

   <Conditions type="IdentifyIfPropMatch">
<Condition prop_name="uft-xtype" expected_value="button" is_reg_exp="true" />

或者我是否应该只使用那些在 native DOM 中注册的属性,例如工具包配置 xml 的条件元素中的 html id、类名、标签名。

我们的一位插件开发人员在工具包配置 xml 中使用了如下所示的外部函数调用来演示应用开发人员提供的这些新属性的使用。

             <Identification function="isExtjsButton">

但我从 QTP 帮助文件中了解到,在工具包配置 xml 中使用像这样的外部函数调用会影响加载项的性能,应该避免。我要求开发人员检查这些自定义属性是否直接在条件元素中使用,并避免进行外部函数调用。但是我们无法破解它。如果能提供有关如何执行此操作的帮助,我们将不胜感激

问候

斯里尼瓦斯

最佳答案

最后联系了 HP QTP 支持。他们告诉我,应用程序开发人员提供的自定义属性应该是 native DOM 属性的一部分,以便它们可以直接在工具包配置 xml 的条件元素中使用。由于自定义属性不是原生 DOM 的一部分,唯一的出路是使用外部函数调用。所以外部函数调用是不可避免的。

关于QTP - 在网络插件扩展性中,我可以使用自定义属性来识别对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831483/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com