已知问题 - Web 插件
此部分包括有关使用 Web 插件的常规疑难解答和限制信息。
注释: 出于向后兼容性考虑,某些文件夹路径有意包含以前的公司品牌。
常规
不同页面和框架上的 UFT One Web 代理会使用 window.postMessage 与彼此通信。如果您要测试的应用程序将侦听 MessageEvent,并处理来自 UFT One Web 代理的消息,则可能会发生不可预测的行为。
通常建议将 Web 应用程序设计为忽略来自源而非其自身的消息。有关详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#Security_concerns。
- Web 测试对象 (例如 WebButton) 的数字属性不支持正则表达式。
对象标识
放大或缩小网页 | UFT One 15.0.1 及更低版本,或者使用 Internet Explorer、Safari 或 JavaFX 控件时: 放大或缩小网页可能会导致 UFT One 在突出显示或识别对象时出现意外行为。确保浏览器处于默认缩放级别。 另请参阅 DPI 缩放级别。 |
同时使用 Web 和 Siebel 插件 | 如果使用已加载的 Siebel 插件打开 UFT One,则 Web 插件不会显示在“对象标识”对话框中。 变通方法: 变通方法: 将 HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\SiebelPackage\Settings\AllowWebToConfig 注册表项的值更改为 1。 |
返回空值 | 如果应用程序对象未在应用程序的控件中实现 aria-selected 属性,则某些描述属性将返回空值。 受影响的属性包括: selected、items count、selected items、selection 和 value 将返回空值。 |
动态生成的子 WebTree 对象 | 如果 WebTree 对象中的子项是动态生成的,UFT One 可能无法使用 .Select 方法自动选择树中的项。 特别是在展开父节点之前,当子对象在应用程序中不可见或不存在时,可能会发生这种情况。 变通方法: 手动添加步骤以使节点可见,或展开树节点以在应用程序中创建对象。 |
引导库 | UFT One 无法识别引导库中使用 <a> 元素 (具有 btn 和 disabled 类) 的对象。 这些类会禁用 UFT One 识别对象所需的指针事件。 |
录制
在录制会话期间自动完成
在录制会话期间,不支持自动完成。在自动完成控件上进行录制时,输入完整的字符串,而不要选择控件提供的建议。此步骤将按与其他 (非自动完成) 控件相同的方式进行录制。
变通方法: 您可以通过选择工具 > Internet 选项 > 高级,然后取消选中“浏览”选项下的使用直接插入自动完成功能,在 Microsoft Internet Explorer 中禁用“自动完成”功能。
录制包含子对象的 WebTree 对象
如果 WebTree 对象包含树内的单独对象 (例如复选框对象),则不会录制这些子对象。
变通方法: 执行以下某项操作:
侦测子对象 | 执行以下操作:
|
手动添加对象 | 将对象添加到对象存储库中,然后将其手动添加到测试或组件中。 |
检查点
在某个浏览器上运行时,在另一个浏览器上创建的位图和页面检查点可能会失败,因为不同的浏览器在视觉上呈现的 Web 对象有所不同。
对于页面检查点,此情况与处理 HTML 源文件中的大小写时的差异有关。
WebTable 测试对象的识别
嵌入到 Web 表中的对象
如果您正在嵌入到 Web 表中的对象上录制操作,则可能无法正确录制这些操作。请在录制后根据需要重新调整测试。
与在 QuickTest 9.5 或 10.00 中创建的测试集成
默认情况下,使用 UFT One Web 插件时,UFT One 会将任何 HTML 表都识别为 WebTable 测试对象。
但是,在 QuickTest 9.5 或 10.00 中,默认行为是在对象侦测器、识别和录制会话期间,忽略仅有一行一列的 HTML 表。
在特定情况下,在识别新测试对象或运行包含在 QuickTest 9.5 或 10.00 中识别的 Web 测试对象的步骤时,这一更改的默认行为可能会导致差异。例如,ChildObjects 方法可能为包含 Web 表的父对象返回不同的值。
变通方法:
如有必要,您可以通过启用 (还可选择修改) 抽象表支持还原到之前的行为。
抽象表可在名为 HPInternal的内置 Web 插件扩展性工具包支持集中定义。默认情况下,此工具包支持集未加载。
打开“<UFT One 安装文件夹>\dat\Extensibility\Web\Toolkits\HPInternal\loadalways.ind”
将文件中的单行更改为: load=true
编辑以下位置的 IsHPAbstractTable JavaScript: “<UFT One 安装文件夹>\dat\Extensibility\Web\Toolkits\HPInternal\HPAbstractTable.js”。
下面的示例 IsHPAbstractTable JavaScript 函数会使 UFT One 将仅有一行一列的 Web 表元素视为抽象表:
function IsHPAbstractTable()
{
// Treat all tables with only one cell as abstract tables
if ( _elem.rows.length == 1 && _elem.rows[0].cells.length == 1 )
{
return true;
}
return false;
要指示 UFT One 忽略其他类型的 Web 表元素,请修改 IsHPAbstractTable JavaScript 函数,使其对基于自身 HTML 属性或其他信息的那些类型返回 True。 (使用令牌 _elem 表示 UFT One 当前正在处理的 Web 元素。)
警告: HPAbstractTable.js 会影响 UFT One 标识 Web 对象的方式,如果修改不正确,可能会导致问题。仅当您是有经验的 JavaScript 程序员并且熟悉 Web 控件的实现时,才能编辑此文件。在进行更改之前,请确保创建文件的备份副本。
WebAgGrid 测试对象
相关插件 | 从.UFT One 15.0 开始,AgGrid Web 子插件 (默认不加载) 将支持 WebAgGrid 对象。如果要测试 AgGrid 对象,请确保在打开 UFT One 时除 Web 插件之外,还选择了 AgGrid 插件。 要打开或运行在更低的 UFT One 版本中创建的测试并使用 AgGrid 对象,请将 AgGrid 插件与“测试设置”的“属性”窗格中的测试相关联。 |
检查点 |
|
行/列 |
|
WebAgGrid.GetCellData
| 如果 WebAgGrid 对象按列排序,则 GetCellData 方法无法标识列。 注: GetCellData 步骤仅无法标识已排序的列。所有其他列均可被成功标识。 变通方法: 删除对列进行的排序,然后再次运行测试。 |
指定用于对象的逻辑名称的属性 | WebAgGrid 和 WebUIGrid 测试对象不支持逻辑名称定义。 |
有关更多详细信息,请参阅《UFT Object Model Reference》中的 WebAgGrid 对象。
WebUIGrid 测试对象
从.UFT One 15.0 开始,UIGrid Web 子插件 (默认不加载) 将支持 WebUIGrid 对象。如果要测试 UIGrid 对象,请确保在打开 UFT One 时除 Web 插件之外,还选择了 UIGrid 插件。
要打开或运行在更低的 UFT One 版本中创建的测试并使用 UIGrid 对象,请将 UIGrid 插件与“测试设置”的“属性”窗格中的测试相关联。
WebUIGrid 测试对象上的检查点将仅验证 DOM 中可用的表内容。
WebAgGrid 和 WebUIGrid 测试对象不支持逻辑名称定义。
另请参见: