press
类: matlab.uitest.TestCase
命名空间: matlab.uitest
对 UI 组件执行按下手势
语法
说明
输入参数
testCase
— 测试用例
matlab.uitest.TestCase
对象
测试用例,指定为 matlab.uitest.TestCase
对象。
comp
— 要按下的组件
UI 组件对象
测试期间要按下的组件,指定为支持按下手势的 UI 组件对象。支持按下手势的组件包括图像、按钮、复选框、开关、菜单、坐标区和图窗。
支持的组件 | 典型的创建函数 |
---|---|
坐标区 | axes |
按钮 | uibutton |
复选框 | uicheckbox |
超链接 | uihyperlink |
图像 | uiimage |
菜单 | uimenu |
面板 | uipanel |
极坐标区 | polaraxes |
按钮工具 | uipushtool |
单选按钮 | uiradiobutton |
状态按钮 | uibutton |
开关(跷板、滑块、拨动) | uiswitch |
切换按钮 | uitogglebutton |
切换工具 | uitoggletool |
UI 坐标区 | uiaxes |
UI 图窗 | uifigure |
location
— 要按下的位置
1×2 或 1×3 数值数组
要按下的位置,指定为点的坐标:
坐标区和 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 图窗)
spn
— 要按下的微调器组件
matlab.ui.control.Spinner
对象
测试期间要按下的微调器组件,指定为 matlab.ui.control.Spinner
对象。微调器组件通常使用 uispinner
函数创建。
direction
— 更改方向
'up'
| 'down'
微调器的更改方向,指定为 'up'
或 'down'
。要增大微调器的值,请使用 'up'
。要减小该值,请使用 'down'
。
数据类型: char
| string
type
— 鼠标选择类型
'normal'
(默认) | 'extend'
| 'alt'
| 'open'
鼠标选择类型,指定为 'normal'
、'extend'
、'alt'
或 'open'
。此输入提供关于在组件中如何按下鼠标按键的信息。有关详细信息,请参阅 UI Figure 属性。
下表列出了可能的选择类型值以及这些值对应的动作。
值 | 对应的操作 |
---|---|
| 点击鼠标左键。 |
| Shift-点击鼠标左键。 |
| 点击鼠标右键。 |
| 双击任何鼠标按键。 |
数据类型: char
| string
示例
按下开关
创建一个滑块开关。
s = uiswitch('slider');
创建一个交互式测试用例并按下开关。表示编程按下手势的蓝点出现在开关的中心,然后消失。开关从 'Off'
移动到 'On'
。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.press(s);
按下坐标区位置
创建 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 图窗
创建一个 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 中推出R2024a: 在超链接上执行手势
您可以在针对超链接的测试中执行按下手势。
R2021b: 在坐标区和 UI 坐标区上的手势中指定鼠标选择类型
您可以在针对坐标区和 UI 坐标区的测试中执行的按下手势中指定鼠标选择类型。compst
参量现在也支持 Axes
和 UIAxes
类型的对象,并且可以与 type
输入参量结合使用来指定鼠标选择类型。
R2021a: 在面板上执行手势
您可以在针对面板的测试中执行按下手势。
R2020b: 在按钮工具和切换工具上执行手势
您可以在针对按钮工具和切换工具的测试中执行按下手势。
R2020a: 在 UI 图窗的手势中指定鼠标选择类型
您可以在针对 UI 图窗的测试中执行的按下手势中指定鼠标选择类型。要指定鼠标选择类型,请使用 type
输入参量。
R2019b: 在极坐标区和图像上执行手势
您可以在针对极坐标区和图像的测试中执行按下手势。
R2019a: 在坐标区和 UI 图窗上执行手势
您可以在坐标区和 UI 图窗的测试中执行按下手势。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)