本主题解释如何对记录 Web web 场景的 Virtualize 方式进行更大的控制。
你可以自定义可在场景录制期间录制的可单击元素。要修改的脚本位于以下目录中:
对于 Chrome:
<Installation_Directory>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root/browsers/chrome/UserCustomizableOptions.js
对于 Internet Explorer:
<Installation_Directory>/plugins/com.parasoft.xtest.libs.web_<version>/root/browsers/i.e./UserCustomizableOptions.js
对于 Firefox:
<Installation_Directory>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root/browsers/ff/user.js
Virtualize 使用 UserCustomizableOptions.js 录制过程中定义的数组变量。以下是该脚本中当前可用的变量;注意,首先列出 UserCustomizableOptions.js 的变量名,然后在括号中列出与 user.js 等价的变量名:
_wk_Recorder.clickableAttributes: 该变量定义了 Virtualize 在决定是否应该记录对该元素的单击时所查找的 HTML 元素的属性类型。例如,onclick 用于初始化脚本执行,在这个数组中是一个很好的候选项。
_wk_Recorder.clickableTags: 此变量定义了在记录单击操作时要考虑的 HTML 标记。在 Ajax web 应用程序中,有时会单击诸如 span 或 li 之类的标记,从而导致某些功能在客户端执行。此变量用于定义此类标记。
_wk_Recorder.clickableInputTypes: 此变量定义了记录单击时将考虑的表单输入类型。默认情况下,文本和 textarea 之类的类型不被认为是可单击的,因为用户通常单击它只是为了获得焦点并输入文本。
_wk_Recorder.structuralTags and _wk_Recorder.containerTags: 以下两个变量一起工作,以限制针对元素记录用户操作的情况。如果前一个变量中指定的元素至少有一个子元素(直接或间接),则不会为前一个变量中指定的元素记录用户操作。
例如,单击 div 元素上的操作通常会被记录下来,但有时 div 元素可能不会用作 UI 元素。元素可以用作包含许多其他元素的容器元素(例如,它可以包含包含许多其他元素的表)。在本例中,可以对包含该表的容器 div 记录单击操作。不过,你可能不希望在本例中记录单击操作,因为 div 用作容器元素,而不是低层 UI 元素。若要告诉 Virtualize 在 div 包含表元素的情况下不要对 div 记录单击操作,请确保
_wk_Recorder.structuralTags
数组(或等效数组)包含“div”,同时确保_wk_Recorder.containerTags
数组(或等效数组)包含“table”。
_wk_Recorder.disallowedTags: 该变量包含一个永远不会被记录的标签列表,即使它们满足其他记录条件。
_wk_LocatorBuilders.order: 此变量定义用于创建定位器的顺序。创建定位器来标识页面上的 html 元素,用户操作应该在该元素上执行。在回放过程中需要重复用户操作。该顺序的构造使得在创建定位器时,元素中的可视属性更有利。
若要查看使用了哪个定位器生成器,请在控制台中启用调试信息
(Parasoft> Preferences> Browser> Print debugging information)。启用此功能后,控制台将显示以下消息Locator - /descendant::img[@id='changeing'][1]
。Used id builder
。
这告诉你实际上使用了来自 LocatorBuilders.order 的什么定位器(在上面的示例中,使用了Used id builder
)。有关该选项的更多信息,请参见 Browser Settings 。_wk_LocatorBuilders.preferredAttributesOrder: 该字段由上面的
_wk_LocatorBuilders.order
的定位构建器 'attributesXPath' 和 'attributesXPathWithIndex’ 使用。调用时,此数组确定使用的首选属性。你可以向该数组添加、删除或重新排序属性名,以更好地自定义为站点上的元素构建的定位器。删除属性将阻止前面提到的定位器构建器使用它(如果你知道 web 页面上的某些属性是动态的,并且不应该使用,那么这一点可能很重要)。对属性重新排序将更改属性的优先级。数组的第一个属性(如“id”)优先于在定位器中使用的最后一个元素
_wk_PageController.xpathLibrary: 该变量允许你配置 Virtualize 来使用特定的 Xpath 库来解析 web 场景中使用的 Xpath 定位器。它只适用于 IE 和 Chrome 浏览器。该选项有三个可能的值:ajaxlt、wgxpath 和 default。
- ajaxlt: 使用谷歌 Google Ajaxlt Xpath 实现:http://code.google.com/p/ajaxslt/
javascript-xpath: 使用 Cybozu Labs Javascript-XPath 实现:http://codereposorg/share/wiki/JavaScript-XPath
- default: 使用默认实现(目前是 Wicked Good XPath)。