本主题说明如何修改由 web 场景模拟的用户操作。

章节目录:

用户操作配置概述

要查看和修改特定方案步骤采取的操作,请执行以下操作:

  1. 双击要配置其操作的方案步骤。
  2. 在 GUI 右侧打开的配置面板中,打开用户操作选项卡
  3. 查看现有操作(最初是录制期间捕获的操作)并根据需要修改设置以指定要执行的操作。可以从可用的预设动作中进行选择,也可以定义自定义动作。

使用数据源对用户操作进行参数化

您可以使用数据源对用户操作进行参数化。例如,让“类型”操作遍历存储在 Excel 电子表格中的一组不同值。

有关如何添加和使用数据源参数化测试的详细信息,请参阅使用数据源、变量或来自其他测试的值对测试进行参数化

标识与用户操作关联的元素

作为用户操作源的元素将在场景步骤的前置动作浏览器内容选项卡中以纯蓝色边框突出显示。

更改用户操作的目标

要快速更改用户操作的目标,请右键点击前置动作浏览器内容选项卡中的相关元素,然后选择相应的修改命令。

如果要更改的用户操作与特定元素没有关联(例如,“关闭”或“导航”操作),请点击用户动作选项卡,然后从动作下拉菜单中选择新动作以修改目标。

检查 HTML 中的元素 

在为页面元素创建和修改用户操作时,您可能需要检查 HTML 以确定是否要向适当的元素添加操作。 

若要查看某个元素的 HTML,请右键点击钙元素并选择检查 <Element>

了解预设操作

您可以通过从预设动作列表中进行选择,然后根据需要进行自定义以满足您的需要,来配置最常见的用户操作。下面介绍可用的预设操作。

用户操作选项卡

用户操作选项卡包含许多预设置用户操作的配置设置。从动作下拉菜单中选择一个用户动作,然后配置元素定位器设置。 更多信息,请参阅指定专用元素定位器

元素定位器设置

元素定位器设置允许指定与操作关联的元素。 

可以使用以下元素定位器:

  • 选择使用 XPath 并输入要用作标识符的 XPath。
  • 选择使用脚本以输入定义所需用户动作的脚本。
  • 选择使用元素属性可指定一组属性,用于将元素与操作关联。下表描述了可配置的设置:

元素指定应应用于操作的元素名称(例如,“img”、“div”或“a”)。若要允许元素,请在此字段中输入任一
属性名指定识别元素的属性名称(例如,“title”、“id”或“name”)。可以使用功能以下其中一项机制配置该值。
属性值

指定属性值字段提供的属性的期望值。

  • 如果您希望指定固定值,请选择固定值选项,然后在文本框中指定需要的值。
  • 如果要使用在数据源中定义的值,请选择参数化选项,然后指定包含要使用的值的数据源列。请注意,只有当项目至少包含一个数据源时,此选项才可用。
  • 如果希望使用自定义方法的返回值,请选择脚本化选项。点击编辑来创建或编辑方法,然后选择需要的方法以便在弹出对话框的方法下拉菜单中使用。如果存在两个或多个方法,您还可以选择不同的方法,以便在表单面板中下拉菜单中使用。
索引

指定与先前条件匹配的元素。输入 0 表示匹配将使用的“元素”、“属性名”和“属性值”条件的第一个元素。输入 1 表示将使用匹配的第二个元素,依此类推。

  • 如果您希望指定固定值,请启用固定值并在文本框中指定需要的值。
  • 如果要使用在数据源中定义的值,请选择参数化并指定包含要使用的值的数据源列。请注意,只有当项目至少包含一个数据源时,此选项才可用。
  • 如果要使用自定义方法的返回值,请启脚本化并点编辑创建或编辑方法,然后从弹出对话框的方法下拉菜单中选择要使用的方法。如果存在两个或多个方法,您还可以选择不同的方法,以便在表单面板中下拉菜单中使用。

许多动作可让您进行配置窗口名称。这使您可以指定要在其中进行操作的窗口的名称。将该字段保留为空白表示将使用默认窗口。

指定专用元素定位符(CSS,ALT 属性等)

您可以通过将元素定位器设置为使用 XPath,然后将可用的定位器前缀之一设置为所需的值来指定各种专用元素定位器。可用选项有:

  • alt=<alt attribute value>
  • class=<class attribute value>
  • css=<css-style locator>
  • dom=<dom-style locator>
  • id=<id attribute value>
  • identifier=<id or name attribute value>
  • link=<link text>
  • name=<name attribute value>
  • xpath=<xpath to element>

例如,要使用 CSS 定位器 tag.classA,请使用 Xpath 定位器 css=tag.classA

弹出对话框的错误

如果下列其中一种类型的 JavaScript 弹出对话框在除接受脚本对话框解除脚本对话框输入脚本对话框以外的操作中打开则会报告错误,除非这是场景中的最后一个测试:

  • 警告
  • 确认
  • 提示

如果在等待操作过程中弹出对话框,则不会报告错误。

接受脚本对话框

此操作会在三种类型的 JavaScript 弹出对话框(警告、确认和提示)中的任何一种点击 OK

Addselection

对于多选组合框,此操作将一个选项添加到选择中。这可以是第一个选择,也可以是其他选择。要选择多个项目,请多次使用此操作。

Check

此操作启用/禁用指定的复选框元素。

点击

此操作点击指定的元素。

配置注意事项:

  • 如果想模仿用户在点击过程中按下 ALT、CTRL 或 SHIFT 键,请使用关键修饰符

关闭

此操作关闭指定的窗口。

解除脚本对话框

对于弹出对话框(警告、确认和提示),此操作要么点击取消按钮(用于确认和提示),要么点击 X(对于所有三种类型的警告对话框)。

Doubleclick

此操作双击一个元素。

Dragdrop

此操作将一个元素拖到另一位置。

配置注意事项:

有四种指示如何移动元素的方法。对于以下所有指示器,操作从将被拖动的元素开始。所有数字均以像素为单位。四个选项为:

  • 移至目标元素:<some locator, like //div[@id="example"]> 通过点击源元素的左上角并拖动到目标元素的左上角,来拉动源元素。
  • 从偏移量开始并按增量移动:offsetX,offsetY|deltaX,deltaY 从源元素的左上角以 offsetX、offsetY 开始拖动源元素,并移动 deltaX、deltaY。负增量将元素向上和向左移动。

  • 按增量移动:deltaX,deltaY 向下拖动源元素,方法是在元素的中央点击,然后移动 deltaX、deltaY。负增量将元素向上和向左移动。
  • 移至元素内的偏移量:<some locator>|offsetX,offsetY 通过点击源元素的左上角并将其拖动到目标元素中距目标元素左上角的偏移量 offsetX、offsetY 的点来拖动源元素。偏移量 0,0 恰好是左上角,其功能与“移至目标元素”相同。负偏移量是目标元素左上角上方或左侧的点。

执行 JavaScript

此操作在当前网页的上下文中执行指定的 JavaScript。指定的 JavaScript 将在与元素定位器定义的元素相同的框架中执行。如果未定义任何元素,则 JavaScript 将在最上方的框架中执行。

要配置此用户操作:

  1. 请指出应该执行什么 JavaScript。您可以将 JavaScript 复制/键入文本框中,或提供 JavaScript 文件的路径。
  2. 点击评估检查脚本是否会运行(不包含语法错误)。JavaScript 语法中的解析函数错误将显示在错误消息字段中。
  3. 从面板底部的方法框中选择适当的参数(您要运行的脚本中的函数)。此列表包括脚本中包含的所有函数定义。

配置注意事项:

  • 元素定位器部分中指定的定位器将作为第一个参数传递给指定的函数。例如,假设您有
    function userFunction(locator) {
       locator.click();
    }
    元素定位器中指定的元素将作为此脚本中的定位器参数传递给函数,以便您可以根据需要对其进行操作。

  • 期望有 0 或 1 个参数。点击时,对话框应显示“在这个脚本中期望有 0 个或者 1 个参数”。如果有一个参数,则参数是此用户操作中元素定位器指定的元素。

示例-点击隐藏的元素:

  1. 在执行 JavaScript 操作中输入以下代码:

    function click(element) {
      element.click();
    }
  2. 方法下拉菜单中选择 click()
  3. 输入要在其上触发点击的元素的元素定位器条件。

请注意,此代码在元素上执行 click 函数。在大多数情况下,这将触发点击行为。在某些情况下,这是不够的,触发点击需要更多代码。

后退

此操作会点击浏览器的后退按钮。不需要参数。

前进

此操作会点击浏览器的前进按钮。不需要参数。 

徘徊

此操作将指针悬停在指定元素上。

Keydown / Keyup

这些操作将触发元素上的 keydown、或 keyup JavaScript 事件。

配置注意事项:

  • 元素定位器指定元素。
  • 键定位器指定按下哪个键。

最大化窗口

此操作最大化指定的浏览器窗口。

配置注意事项:

  • 对于 Mac 上的 Chrome,“最大化窗口”操作被解释为“最适合尺寸”,而不是“填充屏幕”,因此浏览器将仅在垂直方向上最大化。这与用户点击绿色的“加号”按钮以扩展窗口时的行为相同。

导航

该操作将导航到提供的 URL,就像在浏览器的 URL 栏中输入的一样。

配置注意事项:

  • URL 字段中,可以输入固定值参数化(如果数据源可用)或脚本化 URL。要选择脚本化的 URL,请选择脚本化,然后点击编辑脚本,在所选定操作中输入返回要导航到的 URL 的脚本方法。

其他

可以添加自定义操作。 

刷新

该操作会点击刷新

Removeselection

在多选组合框中,此操作将选择中删除一个选项。这等效于在选定的组合框选择上按住 Shift 键并点击。要删除多个项目,请多次使用此操作。 

右键点击

该操作右键点击指定的元素。

相对滚动

此操作将 Web 应用程序滚动为 x 和 y 轴指定的像素数。负值表示“向左滚动”(对于x轴)或“向上滚动”(对于 y 轴)。 

相对滚动

此操作将 web 应用程序滚动指定的像素位置( x 和 y 轴)。

Select

在单选组合框中,此操作将在组合框中选择一个选项。如果已经选择了一个选项,则此操作将更改选择。

配置注意事项:

  • 您可以指定选项以按值(在代码中定义)或标签(在 UI 中显示以及在代码中定义)进行选择。

Submit

此操作将表单或表单中的元素提交到远程服务器。

配置注意事项:

  • 使用元素选择器指示要提交的表单(例如,页面上有多个表单)。

类型

此操作将指定文本输入到指定元素中。

  • 使用指定要输入的文本。可以输入固定值参数化(如果数据源可用)或脚本化值。要输入脚本化值,请选择脚本化,然后点击编辑脚本输入脚本方法以返回所选操作中应输入的值。
  • 如果要将特殊字符发送到浏览器,请直接在字段中键入这些字符(仅当键入生成输出或空格(如制表符、空格、分号、添加等)时有效),或者使用下面的Special Character Mappings for Type Actions概述的特殊字符映射。

输入脚本对话框

此操作将文本输入到提示对话框。

配置注意事项:

  • 它必须紧跟在打开对话框的操作之后,然后是一个接受脚本对话框操作(提交指定的文本)。
  • 如果要将特殊字符发送到浏览器,请直接在字段中键入这些字符(仅当键入生成输出或移动光标(如制表符、空格、分号、添加等)时有效),或者使用下面的Special Character Mappings for Type Actions概述的特殊字符映射。

输入密码

此操作将指定文本输入到指定元素中。文本将在字段中被屏蔽,并在存储时被加密。

  • 使用指定要输入的文本。可以输入固定值参数化(如果数据源可用)或脚本化值。要输入脚本化值,请选择脚本化,然后点击编辑脚本输入脚本方法以返回所选操作中应输入的值。
  • 如果要将特殊字符发送到浏览器,请直接在字段中键入这些字符(仅当键入生成输出或移动光标(如制表符、空格、分号、添加等)时有效),或者使用下面的Special Character Mappings for Type Actions概述的特殊字符映射。

Uncheck

此操作取消选中/清除选中的复选框。

等待

此操作模拟浏览器在继续下一步之前等待指定的毫秒数。

  • 针对毫秒,请指定想要浏览器等待的时间。可以输入固定值参数化(如果数据源可用)或脚本化值。要输入脚本化值,请选择脚本化,然后点击编辑脚本输入脚本方法以返回所选操作中应输入的值。

类型操作的特殊字符映射

可以使用以下特殊字符映射在类型操作中指定特殊字符:

NULL                \uE000
CANCEL              \uE001
HELP                \uE002
BACK_SPACE          \uE003
TAB                 \uE004
CLEAR               \uE005
RETURN              \uE006
ENTER               \uE007
SHIFT               \uE008
CONTROL             \uE009
ALT                 \uE00A
PAUSE               \uE00B
ESCAPE              \uE00C
SPACE               \uE00D
PAGE_UP             \uE00E
PAGE_DOWN           \uE00F
END                 \uE010
HOME                \uE011
LEFT                \uE012
UP                  \uE013
RIGHT               \uE014
DOWN                \uE015
INSERT              \uE016
DELETE              \uE017
SEMICOLON           \uE018
EQUALS              \uE019


数字键盘按键

NUMPAD0             \uE01A
NUMPAD1             \uE01B
NUMPAD2             \uE01C
NUMPAD3             \uE01D
NUMPAD4             \uE01E
NUMPAD5             \uE01F
NUMPAD6             \uE020
NUMPAD7             \uE021
NUMPAD8             \uE022
NUMPAD9             \uE023
MULTIPLY            \uE024
ADD                 \uE025
SEPARATOR           \uE026
SUBTRACT            \uE027
DECIMAL             \uE028
DIVIDE              \uE029


功能键

F1                   \uE031
F2                   \uE032
F3                   \uE033
F4                   \uE034
F5                   \uE035
F6                   \uE036
F7                   \uE037
F8                   \uE038
F9                   \uE039
F10                  \uE03A
F11                  \uE03B
F12                  \uE03C

META                 \uE03D

ZENKAKU_HANKAKU      \uE040

这些字符映射可以与脚本化的“文本输入”值一起使用,比如下面的脚本,它将键入单词“test”,然后发送 tab 键:

def typeTestThenTab() {
	return "test\uE004";
}

这不能用作键修饰符。例如,您不能通过发送控制字符然后执行点击来执行“CTRL-点击”。发送字符可模拟用户按下并释放相应按钮的情况。 

  • No labels