Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

press

类: matlab.uitest.TestCase
命名空间: matlab.uitest

对 UI 组件执行按下手势

说明

示例

press(testcase,comp) 对 UI 组件 comp 执行按下手势。

示例

press(testcase,comp,location) 指定组件内要按下的位置。您只能基于五个可用组件来指定位置:坐标区、UI 坐标区、极坐标区、面板和 UI 图窗。如果不指定位置,MATLAB® 会在 comp 的中心按下。

示例

press(testcase,spn,direction) 指定是按下微调器 spn 中的 'up' 还是 'down' direction 按钮。

示例

press(testcase,compst,'SelectionType',type) 使用指定的鼠标选择类型 type 对组件 compst 执行按下手势。

示例

press(testcase,compst,location,'SelectionType',type) 使用指定的鼠标选择类型指定要在组件中按下的位置。

输入参数

全部展开

测试用例的实例,指定为 matlab.uitest.TestCase 对象。

测试期间要按下的组件,指定为支持按下手势的 UI 组件对象。支持按下手势的组件包括图像、按钮、复选框、开关、菜单、坐标区和图窗。

支持的组件典型的创建函数
坐标区axes
按钮uibutton
复选框uicheckbox
图像uiimage
菜单uimenu
面板uipanel
极坐标区polaraxes
按钮工具uipushtool
单选按钮uiradiobutton
状态按钮uibutton
开关(跷板、滑块、拨动)uiswitch
切换按钮uitogglebutton
切换工具uitoggletool
UI 坐标区uiaxes
UI 图窗uifigure

要按下的位置,指定为点的坐标:

  • 坐标区和 UI 坐标区 - 1×2 或 1×3 数值数组,其中包含 x、y 以及可选的 z 坐标。

  • 极坐标区 - 1×2 数值数组,其中包含 θ 和 r 坐标。

  • 面板和 UI 图窗 - 1×2 数值数组,其中包含 x 和 y 坐标。指定要按下的点的坐标,以组件左下角为起点测量(以像素为单位)。

示例: [32.5 13 0.25](UI 坐标区)

示例: [pi/2 0.5](极坐标区)

示例: [100 200](UI 图窗)

测试期间要按下的微调器组件,指定为 matlab.ui.control.Spinner 对象。微调器组件通常使用 uispinner 函数创建。

微调器的更改方向,指定为 'up''down'。要增大微调器的值,请使用 'up'。要减小该值,请使用 'down'

数据类型: char | string

在测试过程中使用给定的鼠标选择类型按下的组件,指定为 matlab.graphics.axis.Axesmatlab.ui.control.UIAxesmatlab.ui.Figure 对象。

支持的组件典型的创建函数
坐标区axes
UI 坐标区uiaxes
UI 图窗uifigure

鼠标选择类型,指定为 'normal''extend''alt''open'。此输入提供关于在组件中如何按下鼠标按键的信息。有关详细信息,请参阅 UI Figure 属性

下表列出了可能的选择类型值以及这些值对应的动作。

对应的操作

'normal'

点击鼠标左键。

'extend'

Shift-点击鼠标左键。

'alt'

点击鼠标右键。

'open'

双击任何鼠标按键。

数据类型: char | string

示例

全部展开

创建一个滑块开关。

s = uiswitch('slider');

A figure with a slider switch in the 'Off' state

创建一个交互式测试用例并按下开关。表示编程按下手势的蓝点出现在开关的中心,然后消失。开关从 'Off' 移动到 'On'

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(s);

A figure with a slider switch in the 'On' state

创建 UI 坐标区和交互式测试用例实例。

ax = uiaxes;
tc = matlab.uitest.TestCase.forInteractiveUse;

按下坐标区的中心。表示编程按下手势的蓝点出现在坐标区的中心,然后消失。

tc.press(ax)

在坐标区坐标 (0.85, 0.2) 处按下。表示编程按下手势的蓝点出现在指定的坐标区坐标位置,然后消失。

tc.press(ax,[0.85 0.2])

创建一个状态按钮。

b = uibutton('state');

创建一个交互式测试用例,并验证状态按钮的值为 false

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyFalse(b.Value)
Verification passed.

按下该按钮并验证状态更改为 true。表示编程按下手势的蓝点出现在按钮上,然后消失。

tc.press(b)
tc.verifyTrue(b.Value)
Verification passed.

创建一个初始值为 42 的微调器。

s = uispinner('Value',42);
initVal = s.Value;

创建一个交互式测试用例并增大微调器的值。验证微调器的新值等于初始值加上微调器步长值。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(s,'up')
tc.verifyEqual(s.Value,initVal+s.Step)
Verification passed.

减小微调器的值,并验证微调器的值又变回初始值。

tc.press(s,'down')
tc.verifyEqual(s.Value,initVal)
Verification passed.

创建一个 UI 图窗和一个交互式测试用例实例。

f = uifigure;
tc = matlab.uitest.TestCase.forInteractiveUse;

测试在 UI 图窗的中心处的右键点击。表示编程按下手势的蓝点出现在图窗的中心,然后消失。

tc.press(f,'SelectionType','alt')

测试在 UI 图窗的坐标 (100, 200) 处双击。表示编程按下手势的蓝点出现在指定的位置,然后消失。

tc.press(f,[100 200],'SelectionType','open')

自 R2023b 起

通过自动滚动到组件,对不在图窗可查看区域的组件执行手势。

创建一个具有状态按钮的可滚动图窗,该按钮位于图窗的可查看区域之外。

fig = uifigure("Scrollable","on");
b = uibutton(fig,"state","Position",[fig.Position(3)+100 100 100 22]);

为交互测试创建一个测试用例,并验证按钮的初始状态。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyFalse(b.Value)
Verification passed.

按下按钮并验证其状态是否更改。由于图窗是可滚动的,因此 App 测试框架在执行手势之前会自动滚动到该按钮。

tc.press(b)
tc.verifyTrue(b.Value)
Verification passed.

版本历史记录

在 R2018a 中推出

全部展开