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

本章包含:

用户操作配置概述

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

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

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

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



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

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

作为用户操作源的元素将在场景步骤的 Pre-Action Browser Contents 选项卡中以纯蓝色边框突出显示。

更改用户操作的目标

要快速更改用户操作的目标,请右键单击 Pre-Action Browser Contents 选项卡中的相关元素,然后选择合适的 Modify 命令。

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

检查 HTML 中的元素 

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

若要查看 HTML 的某个元素,请从快捷菜单中选择 Inspect <Element> 。


了解预设操作

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

用户操作选项卡

用户操作选项卡包含许多预设置用户操作的配置设置。从 Action 下拉菜单中选择一个用户操作。 (请参见 指定专用元素定位器)并配置元素定位器设置。

元素定位器设置

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

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

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

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

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

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

指定与先前条件匹配的元素。输入 "0” 表示匹配将使用的 "Element," "Attribute Name," 和 "Attribute Value” 条件的第一个元素。输入“1”表示将使用匹配的第二个元素,依此类推。

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

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


Specifying Specialized Element Locators (CSS, ALT attribute, etc.)

使用Selenium,您可以通过将 Element Locator 设置为 Use 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

Errors for Popup Dialogs

如果三种类型的 JavaScript 弹出对话框(警告、确认和提示)中的一种在 Accept Script Dialog、Dismiss Script Dialog 或 Type into Script Dialog 之外的操作中打开,则将报告错误,除非您正在使用 Selenium 引擎,并且这是您的场景中的最后一个测试。 

如果在 Selenium 引擎上的等待操作期间打开弹出对话框,则不会报告错误。

Accept Script Dialog

Selenium Only

此操作按下了三种类型的 JavaScript 弹出对话框中的 OK 按钮:警告、确认和提示。

Addselection

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

Answeronnextprompt

不建议在 9.8 中使用此操作,当前引擎未记录该操作。有关不建议的操作的其他信息,请查阅 关于 Selenium WebDriver 引擎

此操作将文本添加到提示对话框。不建议使用此操作;请改用 Accept Script Dialog、Type into Script Dialog 和 Dismiss Script Dialog。

配置注意事项:

  • 必须在导致提示对话框打开的用户操作之前,立即将此操作添加到场景中。

Assertalert

不建议在 9.8 中使用此操作,当前引擎未记录该操作。有关不建议的操作的其他信息,请查阅 关于 Selenium WebDriver 引擎

此操作将验证警告对话框消息中的文本。不建议使用此操作;请改用 Accept Script Dialog、Type into Script Dialog 和 Dismiss Script Dialog。

配置注意事项:

  • 必须在导致警告对话框打开的用户操作之后,立即将此操作添加到场景中。

Assertconfirmation

不建议在 9.8 中使用此操作,当前引擎未记录该操作。有关不建议的操作的其他信息,请查阅 关于 Selenium WebDriver 引擎

此操作将确认警告对话框消息中的文本。不建议使用此操作;请改用 Accept Script Dialog、Type into Script Dialog 和 Dismiss Script Dialog。

配置注意事项:

  • 必须在导致确认对话框打开的用户操作之后,立即将此操作添加到场景中。

Assertprompt

不建议在 9.8 中使用此操作,当前引擎未记录该操作。有关不建议的操作的其他信息,请查阅 关于 Selenium WebDriver 引擎

此操作将提示对话框消息中的文本。不建议使用此操作;请改用 Accept Script Dialog、Type into Script Dialog 和 Dismiss Script Dialog。

配置注意事项:

  • 必须在导致提示对话框打开的用户操作之后,立即将此操作添加到场景中。

Check

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

Choosecancelonnextconfirmation

不建议在 9.8 中使用此操作,当前引擎未记录该操作。有关不建议的操作的其他信息,请查阅 关于 Selenium WebDriver 引擎

此操作在确认对话框中按 Cancel 按钮。不建议使用此操作;请改用 Accept Script Dialog、Type into Script Dialog 和 Dismiss Script Dialog。

配置注意事项:

  • 必须在导致确认对话框打开的用户操作之前,立即将此操作添加到场景中。

Click

此操作单击指定的元素。

配置注意事项:

  • 如果想模仿用户在单击过程中按下 Alt、Ctrl 或 Shift 键,请使用 Key Modifiers 。

Close

此操作关闭指定的窗口。

Dismiss Script Dialog

Selenium Only

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

Doubleclick

此操作双击一个元素。

Dragdrop

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

配置注意事项:

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

  • Move to target element: <some locator, like //div[@id="example"]> 通过单击源元素的左上角并拖动到目标元素的左上角,来拉动源元素。
  • Start at offset and move by delta: offsetX,offsetY|deltaX,deltaY 从源元素的左上角以 offsetX、offsetY 开始拖动源元素,并移动 deltaX、deltaY。负增量将元素向上和向左移动。

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

Execute JavaScript

Selenium Only

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

要配置此用户操作:

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

配置注意事项:

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

  • 期望有 0 或 1 个参数。单击时,对话框应显示类似“0 or 1 arguments are expected in this script”。如果有一个参数,则参数是此用户操作中元素定位器指定的元素。

示例-单击隐藏的元素:

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

    function click(element) {
      element.click();
    }
  2. 在 Method 选择器中选择 click() 。



  3. 输入要在其上触发单击的元素的元素定位器条件。

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

Fireevent

Targeted for Legacy

此操作在特定页面元素上触发 JavaScript 事件。这涵盖了页面代码中定义的 JavaScript 事件(用户不可见)。  

配置注意事项:

  • 使用 Text Input/Value 字段来指定事件。
  • 指定不带“on”前缀的事件。例如,要触发 onkeypressed 的监听器,您可以输入“keypressed”。

Go Back

此操作按下浏览器的 Back 按钮。不需要参数。

Go Foward

此操作按下浏览器的 Forward 按钮。不需要参数。 

Hover

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

Keydown / Keypress / Keyup

Targeted for Legacy

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

配置注意事项:

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

Maximize Window

Selenium Only

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

配置注意事项:

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

Mousedown / Mouseover / Mouseup

Targeted for Legacy

这些操作将触发元素上的 mousedown、mouseover 或 mouseup JavaScript 事件。

配置注意事项:

  • 元素定位器指定元素。

Navigate

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

配置注意事项:

  • URL 字段中,可以输入 FixedParameterized (如果数据源可用)或 Scripted URL。要选择脚本化的 URL,请选择 Scripted,然后单击 EditScript 按钮,在所选定操作中输入返回要导航到的 URL 的脚本方法。

New Browser

Legacy Only

此操作将打开一个新的浏览器,该浏览器将在指定的起始 URL 处填充页面。

Other

可以添加自定义操作。 

Refresh

此操作按下 Refresh 按钮。

Removeselection

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

Right-click

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

Scroll By

Selenium Only

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

Scroll To

Selenium Only

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

Select

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

配置注意事项:

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

Submit

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

配置注意事项:

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

Type

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

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

Type (Without Focus) Legacy Only

此操作将指定文本键入到指定元素中关注, 而没有任何焦点.

  • 如果要将特殊字符发送到浏览器,请直接在 Value 字段中键入这些字符(仅当键入生成输出或空格(如制表符、空格、分号、添加等)时有效),或者使用 Special Character Mappings for Type Actions 下面概述的特殊字符映射。

Type into Script Dialog Selenium Only

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

配置注意事项:

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

Type Password

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

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

Type Password (Without Focus)

Legacy Only

此操作将指定文本键入到指定元素中关注, 而没有任何焦点.文本将在字段中被屏蔽,并在存储时被加密。

  • 使用 Value 指定要输入的文本。可以输入 FixedParameterized (如果数据源可用)或 Scripted 值。要选择脚本化的 value,请选择 Scripted,然后单击 Edit Script 按钮,在所选定操作中输入返回应键入指定操作中的值的脚本方法。

Uncheck

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

Wait

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

  • 针对 Milliseconds,请指定想要浏览器等待的时间。可以输入 FixedParameterized (如果数据源可用)或 Scripted 值。要选择脚本化的 value,请选择 Scripted,然后单击 Edit Script 按钮,在所选定操作中输入返回应键入指定操作中的值的脚本方法。

类型操作的特殊字符映射

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

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

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

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


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

  • No labels