1# @ohos.UiTest 2 3<!--Kit: Test Kit--> 4<!--Subsystem: Test--> 5<!--Owner: @inter515--> 6<!--Designer: @inter515--> 7<!--Tester: @laonie666--> 8<!--Adviser: @Brilliantry_Rui--> 9 10 11UiTest提供模拟UI操作的能力,供开发者在测试场景使用,主要支持如点击、双击、长按、滑动等UI操作能力。 12 13该模块提供以下功能: 14 15- [On<sup>9+</sup>](#on9):提供控件特征描述能力,用于控件筛选匹配查找。 16- [Component<sup>9+</sup>](#component9):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。 17- [Driver<sup>9+</sup>](#driver9):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。 18- [UiWindow<sup>9+</sup>](#uiwindow9):入口类,提供窗口属性获取,窗口拖动、调整窗口大小等能力。 19- [By<sup>(deprecated)</sup>](#bydeprecated):提供控件特征描述能力,用于控件筛选匹配查找。从API version 9开始不再维护,建议使用[On<sup>9+</sup>](#on9)。 20- [UiComponent<sup>(deprecated)</sup>](#uicomponentdeprecated):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。从API version 9开始不再维护,建议使用[Component<sup>9+</sup>](#component9)。 21- [UiDriver<sup>(deprecated)</sup>](#uidriverdeprecated):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。从API version 9开始不再维护,建议使用[Driver<sup>9+</sup>](#driver9)。 22 23> **说明:** 24> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 25> - 本模块接口在<!--RP1-->[自动化测试脚本](../../application-test/arkxtest-guidelines.md)<!--RP1End-->中使用。 26> - 本模块接口不支持并发调用。 27 28## 导入模块 29 30```ts 31import { Component, Driver, UiWindow, ON, MatchPattern, DisplayRotation, ResizeDirection, WindowMode, PointerMatrix, UiDirection, MouseButton, UIElementInfo, UIEventObserver, UiComponent, UiDriver, BY } from '@kit.TestKit'; 32``` 33 34## MatchPattern 35 36控件属性支持的匹配模式。 37 38**系统能力**:SystemCapability.Test.UiTest 39 40| 名称 | 值 | 说明 | 41|-----------------------|---|---------------------------------------------------------------------| 42| EQUALS | 0 | 等于给定值。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 43| CONTAINS | 1 | 包含给定值。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 44| STARTS_WITH | 2 | 以给定值开始。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 45| ENDS_WITH | 3 | 以给定值结束。 <br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 46| REG_EXP<sup>18+</sup> | 4 | 正则表达式匹配。<br />**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 | 47| REG_EXP_ICASE<sup>18+</sup> | 5 | 正则表达式匹配,忽略大小写。<br />**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 | 48## ResizeDirection<sup>9+</sup> 49 50窗口调整大小的方向。 51 52**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 53 54**系统能力**:SystemCapability.Test.UiTest 55 56| 名称 | 值 | 说明 | 57| ---------- | ---- | -------- | 58| LEFT | 0 | 左方。 | 59| RIGHT | 1 | 右方。 | 60| UP | 2 | 上方。 | 61| DOWN | 3 | 下方。 | 62| LEFT_UP | 4 | 左上方。 | 63| LEFT_DOWN | 5 | 左下方。 | 64| RIGHT_UP | 6 | 右上方。 | 65| RIGHT_DOWN | 7 | 右下方。 | 66 67## Point<sup>9+</sup> 68 69坐标点信息。 70 71**系统能力**:SystemCapability.Test.UiTest 72 73| 名称 | 类型 | 只读 | 可选 | 说明 | 74| ---- | ------ | ---- | ---- |-----------| 75| x | number | 否 | 否 | 坐标点的横坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 76| y | number | 否 | 否 | 坐标点的纵坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。| 77| displayId<sup>20+</sup> | number | 否 | 是 | 坐标点所属的屏幕ID,取值范围:大于等于0的整数。默认值为设备默认屏幕ID。<br> **原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。| 78 79## Rect<sup>9+</sup> 80 81控件的边框信息。 82 83**系统能力**:SystemCapability.Test.UiTest 84 85| 名称 | 类型 | 只读 | 可选 | 说明 | 86| ------ | ------ | ---- | ---- | ------------------------- | 87| left | number | 否 | 否 |控件边框的左上角的X坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 88| top | number | 否 | 否 |控件边框的左上角的Y坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 89| right | number | 否 | 否 |控件边框的右下角的X坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 90| bottom | number | 否 | 否 |控件边框的右下角的Y坐标,取值大于0的整数。<br> **说明:** 从API version 20开始,该属性不再为只读属性。<br> **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 91| displayId<sup>20+</sup> | number | 否 | 是 |控件边框所属的屏幕ID,取值大于或等于0的整数。默认值为设备默认屏幕ID。<br> **原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 | 92 93## WindowMode<sup>9+</sup> 94 95窗口的窗口模式。 96 97**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 98 99**系统能力**:SystemCapability.Test.UiTest 100 101| 名称 | 值 | 说明 | 102| ---------- | ---- | ---------- | 103| FULLSCREEN | 0 | 全屏模式。 | 104| PRIMARY | 1 | 主窗口。 | 105| SECONDARY | 2 | 第二窗口。 | 106| FLOATING | 3 | 浮动窗口。 | 107 108## DisplayRotation<sup>9+</sup> 109 110设备显示器的显示方向。 111 112**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 113 114**系统能力**:SystemCapability.Test.UiTest 115 116| 名称 | 值 | 说明 | 117| ------------ | ---- | ---------------------------------------- | 118| ROTATION_0 | 0 | 设备显示器不旋转,初始形态垂直显示。 | 119| ROTATION_90 | 1 | 设备显示器顺时针旋转90°,水平显示。 | 120| ROTATION_180 | 2 | 设备显示器顺时针旋转180°,逆向垂直显示。 | 121| ROTATION_270 | 3 | 设备显示器顺时针旋转270°,逆向水平显示。 | 122 123## WindowFilter<sup>9+</sup> 124 125窗口的标志属性信息。 126 127**系统能力**:SystemCapability.Test.UiTest 128 129| 名称 | 类型 | 只读 | 可选 | 说明 | 130| -------------------- | ------- | ---- | ---- |----------------------------------------------------------------------------------------| 131| bundleName | string | 否 | 是 | 窗口归属应用的包名,默认值为空。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 132| title | string | 否 | 是 | 窗口的标题信息,默认值为空。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 133| focused | boolean | 否 | 是 | 窗口是否处于获焦状态,true:获焦状态,false:未获焦状态,默认值为false。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 134| actived(deprecated) | boolean | 否 | 是 | 窗口是否正与用户进行交互,true:交互状态,false:未交互状态,默认值为false。<br>从API version 11开始废弃,建议使用active替代。 | 135| active<sup>11+</sup> | boolean | 否 | 是 | 窗口是否正与用户进行交互,true:交互状态,false:未交互状态,默认值为false。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 136| displayId<sup>20+</sup> | number | 否 | 是 | 窗口所属的屏幕ID。取值大于或等于0的整数。默认值为设备默认屏ID。<br> **原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 | 137 138## UiDirection<sup>10+</sup> 139 140进行抛滑等UI操作时的方向。 141 142**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 143 144**系统能力**:SystemCapability.Test.UiTest 145 146| 名称 | 值 | 说明 | 147| ----- | ---- | ------ | 148| LEFT | 0 | 向左。 | 149| RIGHT | 1 | 向右。 | 150| UP | 2 | 向上。 | 151| DOWN | 3 | 向下。 | 152 153## MouseButton<sup>10+</sup> 154 155模拟注入的鼠标按钮。 156 157**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 158 159**系统能力**:SystemCapability.Test.UiTest 160 161| 名称 | 值 | 说明 | 162| ------------------- | ---- | ------------ | 163| MOUSE_BUTTON_LEFT | 0 | 鼠标左键。 | 164| MOUSE_BUTTON_RIGHT | 1 | 鼠标右键。 | 165| MOUSE_BUTTON_MIDDLE | 2 | 鼠标中间键。 | 166 167## UIElementInfo<sup>10+</sup> 168 169UI事件的相关信息。 170 171**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 172 173**系统能力**:SystemCapability.Test.UiTest 174 175| 名称 | 类型 | 只读 | 可选 | 说明 | 176| ---------- | ------ | ---- | ---- | --------------------- | 177| bundleName | string | 是 | 否 | 归属应用的包名。 | 178| type | string | 是 | 否 | 控件/窗口类型。 | 179| text | string | 是 | 否 | 控件/窗口的文本信息。 | 180 181 182## TouchPadSwipeOptions<sup>18+</sup> 183 184触摸板多指滑动手势选项相关信息。 185 186**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 187 188**系统能力**:SystemCapability.Test.UiTest 189 190| 名称 | 类型 | 只读 | 可选 | 说明 | 191| ---------- | ------ |----|----|--------------------------------------------------------| 192| stay | boolean | 否 | 是 | 触摸板多指滑动结束是否停留1s后再抬起,默认为false(不停留1s),true:停留,false:不停留。 | 193| speed | number | 否 | 是 | 滑动速率,取值范围为200-40000的整数,默认值为2000,不在范围内设为默认值为2000,单位:px/s。 | 194 195 196## InputTextMode<sup>20+</sup> 197 198输入文本的方式。 199 200**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 201 202**系统能力**:SystemCapability.Test.UiTest 203 204| 名称 | 类型 | 只读 | 可选 | 说明 | 205| ---------- | ------ |----|----|----------------------------------------------------------| 206| paste | boolean | 否 | 是 | 输入文本时是否指定以复制粘贴方式输入。true:指定以复制粘贴方式输入。false:指定以逐字键入方式输入。默认为false。<br /> **说明:** 当输入文本中包含中文、特殊字符或文本长度超过200字符时,无论该参数取值为何,均以复制粘贴方式输入。| 207| addition | boolean | 否 | 是 | 输入文本时是否以追加的方式进行输入。true:以追加方式输入。false:不以追加方式输入。默认为false。| 208 209 210## On<sup>9+</sup> 211 212UiTest框架从API version 9开始,通过On类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br> 213On提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[ON.isBefore](#isbefore9)和[ON.isAfter](#isafter9)等API限定邻近控件特征进行辅助定位。<br>On类提供的所有API均为同步接口,建议使用者通过静态构造器ON来链式创建On对象。 214 215```ts 216import { ON } from '@kit.TestKit'; 217 218ON.text('123').type('Button'); 219``` 220 221### text<sup>9+</sup> 222 223text(txt: string, pattern?: MatchPattern): On 224 225指定目标控件文本属性,支持多种匹配模式,返回On对象自身。 226 227> **说明** 228> 229> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilitylevel)设置为'no'或'no-hide-descendants',无法使用本接口指定目标控件的文本属性用于查找控件,可以使用[On.originalText()](#originaltext20)接口实现。 230 231**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 232 233**系统能力**:SystemCapability.Test.UiTest 234 235**参数:** 236 237| 参数名 | 类型 | 必填 | 说明 | 238| ------- | ----------------------------- | ---- | --------------------------------------------------- | 239| txt | string | 是 | 指定控件文本,用于匹配目标控件文本。<!--RP2--><!--RP2End--> | 240| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 241 242**返回值:** 243 244| 类型 | 说明 | 245| ---------- | ---------------------------------- | 246| [On](#on9) | 返回指定目标控件文本属性的On对象。 | 247 248**错误码:** 249 250以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 251 252| 错误码ID | 错误信息 | 253| -------- | ------------------------------------------------------------ | 254| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 255 256**示例:** 257 258```ts 259import { On, ON } from '@kit.TestKit'; 260let on:On = ON.text('123'); // 使用静态构造器ON创建On对象,指定目标控件的text属性。 261``` 262 263### id<sup>9+</sup> 264 265id(id: string): On 266 267指定目标控件id属性,返回On对象自身。 268 269**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 270 271**系统能力**:SystemCapability.Test.UiTest 272 273**参数:** 274 275| 参数名 | 类型 | 必填 | 说明 | 276| ------ | ------ | ---- | ---------------- | 277| id | string | 是 | 指定控件的id值。<!--RP2--><!--RP2End--> | 278 279**返回值:** 280 281| 类型 | 说明 | 282| ---------- | -------------------------------- | 283| [On](#on9) | 返回指定目标控件id属性的On对象。 | 284 285**错误码:** 286 287以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 288 289| 错误码ID | 错误信息 | 290| -------- | ------------------------------------------------------------ | 291| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 292 293**示例:** 294 295```ts 296import { On, ON } from '@kit.TestKit'; 297 298let on:On = ON.id('123'); // 使用静态构造器ON创建On对象,指定目标控件的id属性。 299``` 300 301### id<sup>18+</sup> 302 303id(id: string, pattern: MatchPattern): On 304 305指定目标控件id属性,返回On对象自身。 306 307**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 308 309**系统能力**:SystemCapability.Test.UiTest 310 311**参数:** 312 313| 参数名 | 类型 | 必填 | 说明 | 314|-----------------------| ------ |----|---------------------------------------| 315| id | string | 是 | 指定控件的id值。<!--RP2--><!--RP2End--> | 316| pattern | [MatchPattern](#matchpattern) | 是 | 指定的文本匹配模式。 | 317 318**返回值:** 319 320| 类型 | 说明 | 321| ---------- | -------------------------------- | 322| [On](#on9) | 返回指定目标控件id属性的On对象。 | 323 324**错误码:** 325 326以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 327 328| 错误码ID | 错误信息 | 329| -------- | ------------------------------------------------------------ | 330| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 331 332**示例:** 333 334```ts 335import { MatchPattern, On, ON } from '@kit.TestKit'; 336 337let on:On = ON.id('id', MatchPattern.REG_EXP_ICASE); // 忽略大小写匹配控件的id属性值 338``` 339 340### type<sup>9+</sup> 341 342type(tp: string): On 343 344指定目标控件的控件类型属性,返回On对象自身。 345 346**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 347 348**系统能力**:SystemCapability.Test.UiTest 349 350**参数:** 351 352| 参数名 | 类型 | 必填 | 说明 | 353| ------ | ------ | ---- | -------------- | 354| tp | string | 是 | 指定控件类型。<!--RP2--><!--RP2End--> | 355 356**返回值:** 357 358| 类型 | 说明 | 359| ---------- | ---------------------------------------- | 360| [On](#on9) | 返回指定目标控件的控件类型属性的On对象。 | 361 362**错误码:** 363 364以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 365 366| 错误码ID | 错误信息 | 367| -------- | ------------------------------------------------------------ | 368| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 369 370**示例:** 371 372```ts 373import { On, ON } from '@kit.TestKit'; 374let on:On = ON.type('Button'); // 使用静态构造器ON创建On对象,指定目标控件的控件类型属性。 375``` 376 377### type<sup>18+</sup> 378 379type(tp: string, pattern: MatchPattern): On 380 381指定目标控件的控件类型属性,返回On对象自身。 382 383**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 384 385**系统能力**:SystemCapability.Test.UiTest 386 387**参数:** 388 389| 参数名 | 类型 | 必填 | 说明 | 390|-----------------------| ------ |----|---------------------------------------| 391| tp | string | 是 | 指定控件类型。<!--RP2--><!--RP2End--> | 392| pattern | [MatchPattern](#matchpattern) | 是 | 指定的文本匹配模式。 | 393 394**返回值:** 395 396| 类型 | 说明 | 397| ---------- | ---------------------------------------- | 398| [On](#on9) | 返回指定目标控件的控件类型属性的On对象。 | 399 400**错误码:** 401 402以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 403 404| 错误码ID | 错误信息 | 405| -------- | ------------------------------------------------------------ | 406| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 407 408**示例:** 409 410```ts 411import { On, ON, MatchPattern } from '@kit.TestKit'; 412let on:On = ON.type('Button', MatchPattern.EQUALS); // 使用静态构造器ON创建On对象,指定目标控件的控件类型属性。 413``` 414 415### clickable<sup>9+</sup> 416 417clickable(b?: boolean): On 418 419指定目标控件的可点击状态属性,返回On对象自身。 420 421**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 422 423**系统能力**:SystemCapability.Test.UiTest 424 425**参数:** 426 427| 参数名 | 类型 | 必填 | 说明 | 428| ------ | ------- | ---- | ------------------------------------------------------------ | 429| b | boolean | 否 | 指定控件可点击状态。true:可点击。false:不可点击。默认为true。<!--RP2--><!--RP2End--> | 430 431**返回值:** 432 433| 类型 | 说明 | 434| ---------- | ------------------------------------------ | 435| [On](#on9) | 返回指定目标控件的可点击状态属性的On对象。 | 436 437**错误码:** 438 439以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 440 441| 错误码ID | 错误信息 | 442| -------- | ------------------------------------------------------------ | 443| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 444 445**示例:** 446 447```ts 448import { On, ON } from '@kit.TestKit'; 449let on:On = ON.clickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可点击状态属性。 450``` 451 452### longClickable<sup>9+</sup> 453 454longClickable(b?: boolean): On 455 456指定目标控件的可长按点击状态属性,返回On对象自身。 457 458**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 459 460**系统能力**:SystemCapability.Test.UiTest 461 462**参数:** 463 464| 参数名 | 类型 | 必填 | 说明 | 465| ------ | ------- | ---- | ------------------------------------------------------------ | 466| b | boolean | 否 | 指定控件可长按点击状态。true:可长按点击。false:不可长按点击。默认为true。<!--RP2--><!--RP2End--> | 467 468**返回值:** 469 470| 类型 | 说明 | 471| ---------- | ---------------------------------------------- | 472| [On](#on9) | 返回指定目标控件的可长按点击状态属性的On对象。 | 473 474**错误码:** 475 476以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 477 478| 错误码ID | 错误信息 | 479| -------- | ------------------------------------------------------------ | 480| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 481 482**示例:** 483 484```ts 485import { On, ON } from '@kit.TestKit'; 486let on:On = ON.longClickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可长按点击状态属性。 487``` 488 489### scrollable<sup>9+</sup> 490 491scrollable(b?: boolean): On 492 493指定目标控件的可滑动状态属性,返回On对象自身。 494 495**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 496 497**系统能力**:SystemCapability.Test.UiTest 498 499**参数:** 500 501| 参数名 | 类型 | 必填 | 说明 | 502| ------ | ------- | ---- | ----------------------------------------------------------- | 503| b | boolean | 否 | 控件可滑动状态。true:可滑动。false:不可滑动。默认为true。<!--RP2--><!--RP2End--> | 504 505**返回值:** 506 507| 类型 | 说明 | 508| ---------- | ------------------------------------------ | 509| [On](#on9) | 返回指定目标控件的可滑动状态属性的On对象。 | 510 511**错误码:** 512 513以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 514 515| 错误码ID | 错误信息 | 516| -------- | ------------------------------------------------------------ | 517| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 518 519**示例:** 520 521```ts 522import { On, ON } from '@kit.TestKit'; 523let on:On = ON.scrollable(true); // 使用静态构造器ON创建On对象,指定目标控件的可滑动状态属性。 524``` 525 526### enabled<sup>9+</sup> 527 528enabled(b?: boolean): On 529 530指定目标控件的使能状态属性,返回On对象自身。 531 532**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 533 534**系统能力**:SystemCapability.Test.UiTest 535 536**参数:** 537 538| 参数名 | 类型 | 必填 | 说明 | 539| ------ | ------- | ---- | --------------------------------------------------------- | 540| b | boolean | 否 | 指定控件使能状态。true:使能。false:未使能。默认为true。<!--RP2--><!--RP2End--> | 541 542**返回值:** 543 544| 类型 | 说明 | 545| ---------- | ---------------------------------------- | 546| [On](#on9) | 返回指定目标控件的使能状态属性的On对象。 | 547 548**错误码:** 549 550以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 551 552| 错误码ID | 错误信息 | 553| -------- | ------------------------------------------------------------ | 554| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 555 556**示例:** 557 558```ts 559import { On, ON } from '@kit.TestKit'; 560let on:On = ON.enabled(true); // 使用静态构造器ON创建On对象,指定目标控件的使能状态属性。 561``` 562 563### focused<sup>9+</sup> 564 565focused(b?: boolean): On 566 567指定目标控件的获焦状态属性,返回On对象自身。 568 569**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 570 571**系统能力**:SystemCapability.Test.UiTest 572 573**参数:** 574 575| 参数名 | 类型 | 必填 | 说明 | 576| ------ | ------- | ---- | ----------------------------------------------------- | 577| b | boolean | 否 | 控件获焦状态。true:获焦。false:未获焦。默认为true。<!--RP2--><!--RP2End--> | 578 579**返回值:** 580 581| 类型 | 说明 | 582| ---------- | ---------------------------------------- | 583| [On](#on9) | 返回指定目标控件的获焦状态属性的On对象。 | 584 585**错误码:** 586 587以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 588 589| 错误码ID | 错误信息 | 590| -------- | ------------------------------------------------------------ | 591| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 592 593**示例:** 594 595```ts 596import { On, ON } from '@kit.TestKit'; 597let on:On = ON.focused(true); // 使用静态构造器ON创建On对象,指定目标控件的获焦状态属性。 598``` 599 600### selected<sup>9+</sup> 601 602selected(b?: boolean): On 603 604指定目标控件的被选中状态属性,返回On对象自身。 605 606**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 607 608**系统能力**:SystemCapability.Test.UiTest 609 610**参数:** 611 612| 参数名 | 类型 | 必填 | 说明 | 613| ------ | ------- | ---- | ------------------------------------------------------------ | 614| b | boolean | 否 | 指定控件被选中状态。true:被选中。false:未被选中。默认为true。<!--RP2--><!--RP2End--> | 615 616**返回值:** 617 618| 类型 | 说明 | 619| ---------- | ------------------------------------------ | 620| [On](#on9) | 返回指定目标控件的被选中状态属性的On对象。 | 621 622**错误码:** 623 624以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 625 626| 错误码ID | 错误信息 | 627| -------- | ------------------------------------------------------------ | 628| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 629 630**示例:** 631 632```ts 633import { On, ON } from '@kit.TestKit'; 634let on:On = ON.selected(true); // 使用静态构造器ON创建On对象,指定目标控件的被选中状态属性。 635``` 636 637### checked<sup>9+</sup> 638 639checked(b?: boolean): On 640 641指定目标控件的被勾选状态属性,返回On对象自身。 642 643**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 644 645**系统能力**:SystemCapability.Test.UiTest 646 647**参数:** 648 649| 参数名 | 类型 | 必填 | 说明 | 650| ------ | ------- | ---- | ------------------------------------------------------------ | 651| b | boolean | 否 | 指定控件被勾选状态。true:被勾选。false:未被勾选。默认为true。<!--RP2--><!--RP2End--> | 652 653**返回值:** 654 655| 类型 | 说明 | 656| ---------- | ------------------------------------------ | 657| [On](#on9) | 返回指定目标控件的被勾选状态属性的On对象。 | 658 659**错误码:** 660 661以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 662 663| 错误码ID | 错误信息 | 664| -------- | ------------------------------------------------------------ | 665| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 666 667**示例:** 668 669```ts 670import { On, ON } from '@kit.TestKit'; 671let on:On = ON.checked(true); // 使用静态构造器ON创建On对象,指定目标控件的被勾选状态属性 672``` 673 674### checkable<sup>9+</sup> 675 676checkable(b?: boolean): On 677 678指定目标控件能否被勾选状态属性,返回On对象自身。 679 680**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 681 682**系统能力**:SystemCapability.Test.UiTest 683 684**参数:** 685 686| 参数名 | 类型 | 必填 | 说明 | 687| ------ | ------- | ---- | ------------------------------------------------------------ | 688| b | boolean | 否 | 指定控件能否被勾选状态。true:能被勾选。false:不能被勾选。默认为true。<!--RP2--><!--RP2End--> | 689 690**返回值:** 691 692| 类型 | 说明 | 693| ---------- | -------------------------------------------- | 694| [On](#on9) | 返回指定目标控件能否被勾选状态属性的On对象。 | 695 696**错误码:** 697 698以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 699 700| 错误码ID | 错误信息 | 701| -------- | ------------------------------------------------------------ | 702| 401 | Parameter error. 1. Incorrect parameter types; 2. Parameter verification failed. | 703 704**示例:** 705 706```ts 707import { On, ON } from '@kit.TestKit'; 708let on:On = ON.checkable(true); // 使用静态构造器ON创建On对象,指定目标控件的能否被勾选状态属性。 709``` 710 711### isBefore<sup>9+</sup> 712 713isBefore(on: On): On 714 715指定目标控件位于给出的特征属性控件之前,返回On对象自身。 716 717**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 718 719**系统能力**:SystemCapability.Test.UiTest 720 721**参数:** 722 723| 参数名 | 类型 | 必填 | 说明 | 724| ------ | ---------- | ---- | -------------------- | 725| on | [On](#on9) | 是 | 特征控件的属性要求。 <!--RP3--><!--RP3End--> | 726 727**返回值:** 728 729| 类型 | 说明 | 730| ---------- | ---------------------------------------------------- | 731| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之前的On对象。| 732 733**错误码:** 734 735以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 736 737| 错误码ID | 错误信息 | 738| -------- | ------------------------------------------------------------ | 739| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 740 741**示例:** 742 743```ts 744import { On, ON } from '@kit.TestKit'; 745 746// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之前。 747let on:On = ON.type('Button').isBefore(ON.text('123')); // 查找text为123之前的第一个Button组件 748``` 749 750### isAfter<sup>9+</sup> 751 752isAfter(on: On): On 753 754指定目标控件位于给出的特征属性控件之后,返回On对象自身。 755 756**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 757 758**系统能力**:SystemCapability.Test.UiTest 759 760**参数:** 761 762| 参数名 | 类型 | 必填 | 说明 | 763| ------ | ---------- | ---- | -------------------- | 764| on | [On](#on9) | 是 | 特征控件的属性要求。 <!--RP3--><!--RP3End--> | 765 766**返回值:** 767 768| 类型 | 说明 | 769| ---------- | ---------------------------------------------------- | 770| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之后的On对象。 | 771 772**错误码:** 773 774以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 775 776| 错误码ID | 错误信息 | 777| -------- | ------------------------------------------------------------ | 778| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 779 780**示例:** 781 782```ts 783import { On, ON } from '@kit.TestKit'; 784 785// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之后。 786let on:On = ON.type('Text').isAfter(ON.text('123')); // 查找 text为123之后的第一个Text组件 787``` 788 789### within<sup>10+</sup> 790 791within(on: On): On 792 793指定目标控件位于给出的特征属性控件之内,返回On对象自身。 794 795**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 796 797**系统能力**:SystemCapability.Test.UiTest 798 799**参数:** 800 801| 参数名 | 类型 | 必填 | 说明 | 802| ------ | ---------- | ---- | -------------------- | 803| on | [On](#on9) | 是 | 特征控件的属性要求。<!--RP3--><!--RP3End--> | 804 805**返回值:** 806 807| 类型 | 说明 | 808| ---------- | -------------------------------------------------- | 809| [On](#on9) | 返回指定目标控件位于给出的特征属性控件内的On对象。 | 810 811**错误码:** 812 813以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 814 815| 错误码ID | 错误信息 | 816| -------- | ------------------------------------------------------------ | 817| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 818 819**示例:** 820 821```ts 822import { On, ON } from '@kit.TestKit'; 823// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之内。 824let on:On = ON.text('java').within(ON.type('Scroll')); // 查找Scroller里面的text为java的子组件 825``` 826 827### inWindow<sup>10+</sup> 828 829inWindow(bundleName: string): On 830 831指定目标控件位于给出的应用窗口内,返回On对象自身。 832 833**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 834 835**系统能力**:SystemCapability.Test.UiTest 836 837**参数:** 838 839| 参数名 | 类型 | 必填 | 说明 | 840| ---------- | ------ | ---- | ---------------- | 841| bundleName | string | 是 | 应用窗口的包名。<!--RP2--><!--RP2End--> | 842 843**返回值:** 844 845| 类型 | 说明 | 846| ---------- | ---------------------------------------------- | 847| [On](#on9) | 返回指定目标控件位于给出的应用窗口内的On对象。 | 848 849**错误码:** 850 851以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 852 853| 错误码ID | 错误信息 | 854| -------- | ------------------------------------------------------------ | 855| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 856 857**示例:** 858 859```ts 860import { On, ON } from '@kit.TestKit'; 861let on:On = ON.inWindow('com.uitestScene.acts'); // 使用静态构造器ON创建On对象,指定目标控件位于给出的应用窗口内。 862``` 863 864### description<sup>11+</sup> 865 866description(val: string, pattern?: MatchPattern): On 867 868指定目标控件的描述属性,支持多种匹配模式,返回On对象自身。 869 870**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 871 872**系统能力**:SystemCapability.Test.UiTest 873 874**参数:** 875 876| 参数名 | 类型 | 必填 | 说明 | 877| ------- | ----------------------------- | ---- | --------------------------------------------------- | 878| val | string | 是 | 控件的描述属性。 <!--RP2--><!--RP2End--> | 879| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 880 881**返回值:** 882 883| 类型 | 说明 | 884| ---------- | ----------------------------------------- | 885| [On](#on9) | 返回指定目标控件description属性的On对象。 | 886 887**错误码:** 888 889以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 890 891| 错误码ID | 错误信息 | 892| -------- | ------------------------------------------------------------ | 893| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 894 895**示例:** 896 897```ts 898import { On, ON } from '@kit.TestKit'; 899let on:On = ON.description('123'); // 使用静态构造器ON创建On对象,指定目标控件的description属性。 900``` 901 902### hint<sup>18+</sup> 903 904hint(val: string, pattern?: MatchPattern): On 905 906获取指定提示文本的控件对象,返回On对象自身。 907 908**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 909 910**系统能力**:SystemCapability.Test.UiTest 911 912**参数:** 913 914| 参数名 | 类型 | 必填 | 说明 | 915| ------ | ------ |----|---------------------------------------| 916| val | string | 是 | 指定控件提示文本。 <!--RP2--><!--RP2End--> | 917| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 918 919**返回值:** 920 921| 类型 | 说明 | 922| ---------- | ---------------------------------------- | 923| [On](#on9) | 返回指定提示文本控件的On对象。 | 924 925**错误码:** 926 927以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 928 929| 错误码ID | 错误信息 | 930| -------- | ------------------------------------------------------------ | 931| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 932 933**示例:** 934 935```ts 936 import { MatchPattern, On, ON } from '@kit.TestKit'; 937 938 let on:On = ON.hint('welcome', MatchPattern.EQUALS); // 使用静态构造器ON创建On对象,指定目标控件的提示文本属性。 939``` 940 941### belongingDisplay<sup>20+</sup> 942 943belongingDisplay(displayId: number): On 944 945获取指定屏幕内的控件对象,返回On对象自身。 946 947**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 948 949**系统能力**:SystemCapability.Test.UiTest 950 951**参数:** 952 953| 参数名 | 类型 | 必填 | 说明 | 954| ------ | ------ |----|---------------------------------------| 955| displayId | number | 是 | 指定控件所属屏幕ID,取值范围:大于等于0的整数。<br> **说明:** 传入displayId不存在时,将抛出17000007异常。可通过[getAllDisplays](../apis-arkui/js-apis-display.md#displaygetalldisplays9)获取当前所有的display对象,并由display对象获取对应的屏幕ID。<!--RP2--><!--RP2End--> | 956 957**返回值:** 958 959| 类型 | 说明 | 960| ---------- | ---------------------------------------- | 961| [On](#on9) | 返回指定控件所属屏幕的On对象。 | 962 963**错误码:** 964 965以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 966 967| 错误码ID | 错误信息 | 968| -------- | ------------------------------------------------------------ | 969| 17000007 | Parameter verification failed.| 970 971**示例:** 972 973```ts 974 import { On, ON } from '@kit.TestKit'; 975 976 let on:On = ON.belongingDisplay(0); // 使用静态构造器ON创建On对象,指定目标控件所属屏幕ID 977``` 978 979### originalText<sup>20+</sup> 980 981originalText(text: string, pattern?: MatchPattern): On 982 983指定目标控件的文本属性,支持多种匹配模式,返回On对象自身。 984 985> **说明** 986> 987> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilitylevel)设置为'no'或'no-hide-descendants',可以使用本接口指定目标控件的文本属性用于查找控件,使用[On.text()](#text9)接口不生效。 988 989**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 990 991**系统能力**:SystemCapability.Test.UiTest 992 993**参数:** 994 995| 参数名 | 类型 | 必填 | 说明 | 996| ------- | ----------------------------- | ---- | --------------------------------------------------- | 997| text | string | 是 | 指定控件文本,用于匹配目标控件文本。 <!--RP2--><!--RP2End--> | 998| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 999 1000**返回值:** 1001 1002| 类型 | 说明 | 1003| ---------- | ---------------------------------- | 1004| [On](#on9) | 返回指定目标控件文本属性的On对象。 | 1005 1006**错误码:** 1007 1008以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1009 1010| 错误码ID | 错误信息 | 1011| -------- | ------------------------------------------------------------ | 1012| 17000007 | Parameter verification failed.| 1013 1014**示例:** 1015 1016```ts 1017import { On, ON } from '@kit.TestKit'; 1018 1019let on:On = ON.originalText('123'); // 使用静态构造器ON创建On对象,指定目标控件的originalText属性 1020``` 1021 1022## Component<sup>9+</sup> 1023 1024UiTest框架在API9中,Component类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。 1025该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。 1026 1027### click<sup>9+</sup> 1028 1029click(): Promise\<void> 1030 1031控件对象进行点击操作,使用Promise异步回调。 1032 1033**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1034 1035**系统能力**:SystemCapability.Test.UiTest 1036 1037**返回值:** 1038 1039| 类型 | 说明 | 1040|----------------|-----------------| 1041| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1042 1043**错误码:** 1044 1045以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1046 1047| 错误码ID | 错误信息 | 1048| -------- | ---------------------------------------- | 1049| 17000002 | The async function is not called with await. | 1050| 17000004 | The window or component is invisible or destroyed. | 1051 1052**示例:** 1053 1054```ts 1055import { Driver, ON, Component } from '@kit.TestKit'; 1056async function demo() { 1057 let driver:Driver = Driver.create(); 1058 let button: Component = await driver.findComponent(ON.type('Button')); 1059 await button.click(); 1060} 1061``` 1062 1063### doubleClick<sup>9+</sup> 1064 1065doubleClick(): Promise\<void> 1066 1067控件对象进行双击操作,使用Promise异步回调。 1068 1069**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1070 1071**系统能力**:SystemCapability.Test.UiTest 1072 1073**返回值:** 1074 1075| 类型 | 说明 | 1076|----------------|-----------------| 1077| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1078 1079**错误码:** 1080 1081以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1082 1083| 错误码ID | 错误信息 | 1084| -------- | ---------------------------------------- | 1085| 17000002 | The async function is not called with await. | 1086| 17000004 | The window or component is invisible or destroyed. | 1087 1088**示例:** 1089 1090```ts 1091import {Component, Driver, ON } from '@kit.TestKit'; 1092async function demo() { 1093 let driver: Driver = Driver.create(); 1094 let button: Component = await driver.findComponent(ON.type('Button')); 1095 await button.doubleClick(); 1096} 1097``` 1098 1099### longClick<sup>9+</sup> 1100 1101longClick(): Promise\<void> 1102 1103控件对象进行长按操作,使用Promise异步回调。 1104 1105**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1106 1107**系统能力**:SystemCapability.Test.UiTest 1108 1109**返回值:** 1110 1111| 类型 | 说明 | 1112|----------------|-----------------| 1113| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1114 1115**错误码:** 1116 1117以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1118 1119| 错误码ID | 错误信息 | 1120| -------- | ---------------------------------------- | 1121| 17000002 | The async function is not called with await. | 1122| 17000004 | The window or component is invisible or destroyed. | 1123 1124**示例:** 1125 1126```ts 1127import { Component, Driver, ON } from '@kit.TestKit'; 1128async function demo() { 1129 let driver: Driver = Driver.create(); 1130 let button: Component = await driver.findComponent(ON.type('Button')); 1131 await button.longClick(); 1132} 1133``` 1134 1135### getId<sup>9+</sup> 1136 1137getId(): Promise\<string> 1138 1139获取控件对象的id值,使用Promise异步回调。 1140 1141**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1142 1143**系统能力**:SystemCapability.Test.UiTest 1144 1145**返回值:** 1146 1147| 类型 | 说明 | 1148| ---------------- | ------------------------------- | 1149| Promise\<string> | Promise对象,返回控件的id值。 | 1150 1151**错误码:** 1152 1153以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1154 1155| 错误码ID | 错误信息 | 1156| -------- | ---------------------------------------- | 1157| 17000002 | The async function is not called with await. | 1158| 17000004 | The window or component is invisible or destroyed. | 1159 1160**示例:** 1161 1162```ts 1163import { Component, Driver, ON } from '@kit.TestKit'; 1164async function demo() { 1165 let driver: Driver = Driver.create(); 1166 let button: Component = await driver.findComponent(ON.type('Button')); 1167 let id = await button.getId(); 1168} 1169``` 1170 1171### getText<sup>9+</sup> 1172 1173getText(): Promise\<string> 1174 1175获取控件对象的文本信息,使用Promise异步回调。 1176 1177> **说明** 1178> 1179> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilitylevel)设置为'no'或'no-hide-descendants',无法使用本接口获取控件的文本信息,可以使用[Component.getOriginalText()](#getoriginaltext20)获取控件的文本信息。 1180 1181**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1182 1183**系统能力**:SystemCapability.Test.UiTest 1184 1185**返回值:** 1186 1187| 类型 | 说明 | 1188| ---------------- | --------------------------------- | 1189| Promise\<string> | Promise对象,返回控件的文本信息。 | 1190 1191**错误码:** 1192 1193以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1194 1195| 错误码ID | 错误信息 | 1196| -------- | ---------------------------------------- | 1197| 17000002 | The async function is not called with await. | 1198| 17000004 | The window or component is invisible or destroyed. | 1199 1200**示例:** 1201 1202```ts 1203import { Component, Driver, ON } from '@kit.TestKit'; 1204async function demo() { 1205 let driver: Driver = Driver.create(); 1206 let button: Component = await driver.findComponent(ON.type('Button')); 1207 let text = await button.getText(); 1208} 1209``` 1210 1211### getType<sup>9+</sup> 1212 1213getType(): Promise\<string> 1214 1215获取控件对象的控件类型,使用Promise异步回调。 1216 1217**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1218 1219**系统能力**:SystemCapability.Test.UiTest 1220 1221**返回值:** 1222 1223| 类型 | 说明 | 1224| ---------------- | ----------------------------- | 1225| Promise\<string> | Promise对象,返回控件的类型。 | 1226 1227**错误码:** 1228 1229以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1230 1231| 错误码ID | 错误信息 | 1232| -------- | ---------------------------------------- | 1233| 17000002 | The async function is not called with await. | 1234| 17000004 | The window or component is invisible or destroyed. | 1235 1236**示例:** 1237 1238```ts 1239import { Component, Driver, ON } from '@kit.TestKit'; 1240async function demo() { 1241 let driver: Driver = Driver.create(); 1242 let button: Component = await driver.findComponent(ON.type('Button')); 1243 let type = await button.getType(); 1244} 1245``` 1246 1247### getBounds<sup>9+</sup> 1248 1249getBounds(): Promise\<Rect> 1250 1251获取控件对象的边框信息,使用Promise异步回调。 1252 1253**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1254 1255**系统能力**:SystemCapability.Test.UiTest 1256 1257**返回值:** 1258 1259| 类型 | 说明 | 1260| ------------------------ | ------------------------------------- | 1261| Promise\<[Rect](#rect9)> | Promise对象,返回控件对象的边框信息。 | 1262 1263**错误码:** 1264 1265以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1266 1267| 错误码ID | 错误信息 | 1268| -------- | ---------------------------------------- | 1269| 17000002 | The async function is not called with await. | 1270| 17000004 | The window or component is invisible or destroyed. | 1271 1272**示例:** 1273 1274```ts 1275import { Component, Driver, ON } from '@kit.TestKit'; 1276async function demo() { 1277 let driver: Driver = Driver.create(); 1278 let button: Component = await driver.findComponent(ON.type('Button')); 1279 let rect = await button.getBounds(); 1280} 1281``` 1282 1283### getBoundsCenter<sup>9+</sup> 1284 1285getBoundsCenter(): Promise\<Point> 1286 1287获取控件对象所占区域的中心点信息,使用Promise异步回调。 1288 1289**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1290 1291**系统能力**:SystemCapability.Test.UiTest 1292 1293**返回值:** 1294 1295| 类型 | 说明 | 1296| -------------------------- | ----------------------------------------------- | 1297| Promise\<[Point](#point9)> | Promise对象,返回控件对象所占区域的中心点信息。 | 1298 1299**错误码:** 1300 1301以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1302 1303| 错误码ID | 错误信息 | 1304| -------- | ---------------------------------------- | 1305| 17000002 | The async function is not called with await. | 1306| 17000004 | The window or component is invisible or destroyed. | 1307 1308**示例:** 1309 1310```ts 1311import { Component, Driver, ON } from '@kit.TestKit'; 1312async function demo() { 1313 let driver: Driver = Driver.create(); 1314 let button: Component = await driver.findComponent(ON.type('Button')); 1315 let point = await button.getBoundsCenter(); 1316} 1317``` 1318 1319### isClickable<sup>9+</sup> 1320 1321isClickable(): Promise\<boolean> 1322 1323获取控件对象可点击属性,使用Promise异步回调。 1324 1325**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1326 1327**系统能力**:SystemCapability.Test.UiTest 1328 1329**返回值:** 1330 1331| 类型 | 说明 | 1332| ----------------- | ------------------------------------------------------------ | 1333| Promise\<boolean> | Promise对象,返回控件对象是否可点击。true:可点击。false:不可点击。 | 1334 1335**错误码:** 1336 1337以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1338 1339| 错误码ID | 错误信息 | 1340| -------- | ---------------------------------------- | 1341| 17000002 | The async function is not called with await. | 1342| 17000004 | The window or component is invisible or destroyed. | 1343 1344**示例:** 1345 1346```ts 1347import { Component, Driver, ON } from '@kit.TestKit'; 1348async function demo() { 1349 let driver: Driver = Driver.create(); 1350 let button: Component = await driver.findComponent(ON.type('Button')); 1351 if(await button.isClickable()) { 1352 console.info('This button can be Clicked'); 1353 } else { 1354 console.info('This button can not be Clicked'); 1355 } 1356} 1357``` 1358 1359### isLongClickable<sup>9+</sup> 1360 1361isLongClickable(): Promise\<boolean> 1362 1363获取控件对象可长按点击属性,使用Promise异步回调。 1364 1365**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1366 1367**系统能力**:SystemCapability.Test.UiTest 1368 1369**返回值:** 1370 1371| 类型 | 说明 | 1372| ----------------- |--------------------------------------------------| 1373| Promise\<boolean> | Promise对象,返回控件对象是否可长按点击。true:可长按点击。false:不可长按点击。 | 1374 1375**错误码:** 1376 1377以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1378 1379| 错误码ID | 错误信息 | 1380| -------- | ---------------------------------------- | 1381| 17000002 | The async function is not called with await. | 1382| 17000004 | The window or component is invisible or destroyed. | 1383 1384**示例:** 1385 1386```ts 1387import { Component, Driver, ON } from '@kit.TestKit'; 1388async function demo() { 1389 let driver: Driver = Driver.create(); 1390 let button: Component = await driver.findComponent(ON.type('Button')); 1391 if(await button.isLongClickable()) { 1392 console.info('This button can longClick'); 1393 } else { 1394 console.info('This button can not longClick'); 1395 } 1396} 1397``` 1398 1399### isChecked<sup>9+</sup> 1400 1401isChecked(): Promise\<boolean> 1402 1403获取控件对象被勾选状态,使用Promise异步回调。 1404 1405**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1406 1407**系统能力**:SystemCapability.Test.UiTest 1408 1409**返回值:** 1410 1411| 类型 | 说明 | 1412| ----------------- | ------------------------------------------------------------ | 1413| Promise\<boolean> | Promise对象,返回控件对象被勾选状态。true:被勾选。false:未被勾选。 | 1414 1415**错误码:** 1416 1417以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1418 1419| 错误码ID | 错误信息 | 1420| -------- | ---------------------------------------- | 1421| 17000002 | The async function is not called with await. | 1422| 17000004 | The window or component is invisible or destroyed. | 1423 1424**示例:** 1425 1426```ts 1427import { Component, Driver, ON } from '@kit.TestKit'; 1428async function demo() { 1429 let driver: Driver = Driver.create(); 1430 let checkBox: Component = await driver.findComponent(ON.type('Checkbox')); 1431 if(await checkBox.isChecked()) { 1432 console.info('This checkBox is checked'); 1433 } else { 1434 console.info('This checkBox is not checked'); 1435 } 1436} 1437``` 1438 1439### isCheckable<sup>9+</sup> 1440 1441isCheckable(): Promise\<boolean> 1442 1443获取控件对象能否被勾选属性,使用Promise异步回调。 1444 1445**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1446 1447**系统能力**:SystemCapability.Test.UiTest 1448 1449**返回值:** 1450 1451| 类型 | 说明 | 1452| ----------------- | ------------------------------------------------------------ | 1453| Promise\<boolean> | Promise对象,返回控件对象能否可被勾选属性。true:可被勾选。false:不可被勾选。 | 1454 1455**错误码:** 1456 1457以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1458 1459| 错误码ID | 错误信息 | 1460| -------- | ---------------------------------------- | 1461| 17000002 | The async function is not called with await. | 1462| 17000004 | The window or component is invisible or destroyed. | 1463 1464**示例:** 1465 1466```ts 1467import { Component, Driver, ON } from '@kit.TestKit'; 1468async function demo() { 1469 let driver: Driver = Driver.create(); 1470 let checkBox: Component = await driver.findComponent(ON.type('Checkbox')); 1471 if(await checkBox.isCheckable()) { 1472 console.info('This checkBox is checkable'); 1473 } else { 1474 console.info('This checkBox is not checkable'); 1475 } 1476} 1477``` 1478 1479### isScrollable<sup>9+</sup> 1480 1481isScrollable(): Promise\<boolean> 1482 1483获取控件对象可滑动属性,使用Promise异步回调。 1484 1485**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1486 1487**系统能力**:SystemCapability.Test.UiTest 1488 1489**返回值:** 1490 1491| 类型 | 说明 | 1492| ----------------- | ------------------------------------------------------------ | 1493| Promise\<boolean> | Promise对象,返回控件对象是否可滑动。true:可滑动。false:不可滑动。 | 1494 1495**错误码:** 1496 1497以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1498 1499| 错误码ID | 错误信息 | 1500| -------- | ---------------------------------------- | 1501| 17000002 | The async function is not called with await. | 1502| 17000004 | The window or component is invisible or destroyed. | 1503 1504**示例:** 1505 1506```ts 1507import { Component, Driver, ON } from '@kit.TestKit'; 1508async function demo() { 1509 let driver: Driver = Driver.create(); 1510 let scrollBar: Component = await driver.findComponent(ON.scrollable(true)); 1511 if(await scrollBar.isScrollable()) { 1512 console.info('This scrollBar can be operated'); 1513 } else { 1514 console.info('This scrollBar can not be operated'); 1515 } 1516} 1517``` 1518 1519 1520### isEnabled<sup>9+</sup> 1521 1522isEnabled(): Promise\<boolean> 1523 1524获取控件使能状态,使用Promise异步回调。 1525 1526**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1527 1528**系统能力**:SystemCapability.Test.UiTest 1529 1530**返回值:** 1531 1532| 类型 | 说明 | 1533| ----------------- | ---------------------------------------------------------- | 1534| Promise\<boolean> | Promise对象,返回控件使能状态。true:使能。false:未使能。 | 1535 1536**错误码:** 1537 1538以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1539 1540| 错误码ID | 错误信息 | 1541| -------- | ---------------------------------------- | 1542| 17000002 | The async function is not called with await. | 1543| 17000004 | The window or component is invisible or destroyed. | 1544 1545**示例:** 1546 1547```ts 1548import { Component, Driver, ON } from '@kit.TestKit'; 1549async function demo() { 1550 let driver: Driver = Driver.create(); 1551 let button: Component = await driver.findComponent(ON.type('Button')); 1552 if(await button.isEnabled()) { 1553 console.info('This button can be operated'); 1554 } else { 1555 console.info('This button can not be operated'); 1556 } 1557} 1558``` 1559 1560### isFocused<sup>9+</sup> 1561 1562isFocused(): Promise\<boolean> 1563 1564判断控件对象获焦状态,使用Promise异步回调。 1565 1566**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1567 1568**系统能力**:SystemCapability.Test.UiTest 1569 1570**返回值:** 1571 1572| 类型 | 说明 | 1573| ----------------- | ------------------------------------------------------------ | 1574| Promise\<boolean> | Promise对象,返回控件对象获焦状态。true:获焦。false:未获焦。 | 1575 1576**错误码:** 1577 1578以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1579 1580| 错误码ID | 错误信息 | 1581| -------- | ---------------------------------------- | 1582| 17000002 | The async function is not called with await. | 1583| 17000004 | The window or component is invisible or destroyed. | 1584 1585**示例:** 1586 1587```ts 1588import { Component, Driver, ON } from '@kit.TestKit'; 1589async function demo() { 1590 let driver: Driver = Driver.create(); 1591 let button: Component = await driver.findComponent(ON.type('Button')); 1592 if(await button.isFocused()) { 1593 console.info('This button is focused'); 1594 } else { 1595 console.info('This button is not focused'); 1596 } 1597} 1598``` 1599 1600### isSelected<sup>9+</sup> 1601 1602isSelected(): Promise\<boolean> 1603 1604获取控件对象被选中状态,使用Promise异步回调。 1605 1606**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1607 1608**系统能力**:SystemCapability.Test.UiTest 1609 1610**返回值:** 1611 1612| 类型 | 说明 | 1613| ----------------- | --------------------------------------------------- | 1614| Promise\<boolean> | Promise对象,返回控件对象被选中状态。true:被选中。false:未被选中。 | 1615 1616**错误码:** 1617 1618以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1619 1620| 错误码ID | 错误信息 | 1621| -------- | ---------------------------------------- | 1622| 17000002 | The async function is not called with await. | 1623| 17000004 | The window or component is invisible or destroyed. | 1624 1625**示例:** 1626 1627```ts 1628import { Component, Driver, ON } from '@kit.TestKit'; 1629async function demo() { 1630 let driver: Driver = Driver.create(); 1631 let button: Component = await driver.findComponent(ON.type('Button')); 1632 if(await button.isSelected()) { 1633 console.info('This button is selected'); 1634 } else { 1635 console.info('This button is not selected'); 1636 } 1637} 1638``` 1639 1640### inputText<sup>9+</sup> 1641 1642inputText(text: string): Promise\<void> 1643 1644清空组件内原有文本并输入指定文本内容,仅针对可编辑的文本组件生效,使用Promise异步回调。 1645 1646**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1647 1648**系统能力**:SystemCapability.Test.UiTest 1649 1650**返回值:** 1651 1652| 类型 | 说明 | 1653|----------------|-----------------| 1654| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1655 1656**参数:** 1657 1658| 参数名 | 类型 | 必填 | 说明 | 1659| ------ | ------ | ---- | ---------------------------------------- | 1660| text | string | 是 | 输入的文本信息,当前支持英文、中文和特殊字符。 | 1661 1662**错误码:** 1663 1664以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1665 1666| 错误码ID | 错误信息 | 1667| -------- | ---------------------------------------- | 1668| 17000002 | The async function is not called with await. | 1669| 17000004 | The window or component is invisible or destroyed. | 1670| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 1671 1672**示例:** 1673 1674```ts 1675import { Component, Driver, ON } from '@kit.TestKit'; 1676async function demo() { 1677 let driver: Driver = Driver.create(); 1678 let text: Component = await driver.findComponent(ON.text('hello world')); 1679 await text.inputText('123'); 1680} 1681``` 1682 1683### inputText<sup>20+</sup> 1684 1685inputText(text: string, mode: InputTextMode): Promise\<void> 1686 1687向控件中输入文本,并支持指定文本输入方式,仅针对可编辑的文本组件生效,使用Promise异步回调。 1688 1689**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 1690 1691**系统能力**:SystemCapability.Test.UiTest 1692 1693**参数:** 1694 1695| 参数名 | 类型 | 必填 | 说明 | 1696| ------ | ------ | ---- | ---------------------------------------- | 1697| text | string | 是 | 输入的文本信息,当前支持英文、中文和特殊字符。 | 1698| mode | [InputTextMode](#inputtextmode20) | 是 | 输入文本的方式,取值请参考[InputTextMode](#inputtextmode20)。<br> **说明:** InputTextMode.addition取值为ture时,在控件已有文本末尾后追加指定文本。取值为false时,指定文本将覆盖控件已有文本。| 1699 1700**返回值:** 1701 1702| 类型 | 说明 | 1703|----------------|-----------------| 1704| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1705 1706**错误码:** 1707 1708以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1709 1710| 错误码ID | 错误信息 | 1711| -------- | ---------------------------------------- | 1712| 17000002 | The async function is not called with await. | 1713| 17000004 | The window or component is invisible or destroyed. | 1714| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 1715| 801 | Capability not supported, function can not work correctly due to limited device capabilities.| 1716 1717**示例:** 1718```ts 1719import { Component, Driver, ON } from '@kit.TestKit'; 1720 1721async function mode_demo() { 1722 let driver: Driver = Driver.create(); 1723 let text: Component = await driver.findComponent(ON.text('hello world')); 1724 await text.inputText('123', { paste: true, addition: false }); 1725} 1726``` 1727 1728 1729### clearText<sup>9+</sup> 1730 1731clearText(): Promise\<void> 1732 1733清除控件的文本信息,仅针对可编辑的文本组件生效,使用Promise异步回调。 1734 1735**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1736 1737**系统能力**:SystemCapability.Test.UiTest 1738 1739**返回值:** 1740 1741| 类型 | 说明 | 1742|----------------|-----------------| 1743| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1744 1745**错误码:** 1746以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 1747 1748| 错误码ID | 错误信息 | 1749| -------- | ---------------------------------------- | 1750| 17000002 | The async function is not called with await. | 1751| 17000004 | The window or component is invisible or destroyed. | 1752 1753**示例:** 1754 1755```ts 1756import { Component, Driver, ON } from '@kit.TestKit'; 1757async function demo() { 1758 let driver: Driver = Driver.create(); 1759 let text: Component = await driver.findComponent(ON.text('hello world')); 1760 await text.clearText(); 1761} 1762``` 1763 1764### scrollSearch<sup>9+</sup> 1765 1766scrollSearch(on: On): Promise\<Component> 1767 1768在控件上滑动查找目标控件(适用支持滑动的控件),使用Promise异步回调。 1769 1770**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1771 1772**系统能力**:SystemCapability.Test.UiTest 1773 1774**参数:** 1775 1776| 参数名 | 类型 | 必填 | 说明 | 1777| ------ | ---------- | ---- | -------------------- | 1778| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1779 1780**返回值:** 1781 1782| 类型 | 说明 | 1783| ---------------------------------- | ------------------------------------- | 1784| Promise\<[Component](#component9)> | Promise对象,返回目标控件对象。 | 1785 1786**错误码:** 1787 1788以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1789 1790| 错误码ID | 错误信息 | 1791| -------- | ---------------------------------------- | 1792| 17000002 | The async function is not called with await. | 1793| 17000004 | The window or component is invisible or destroyed. | 1794| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 1795 1796**示例:** 1797 1798```ts 1799import { Component, Driver, ON } from '@kit.TestKit'; 1800 1801async function demo() { 1802 let driver: Driver = Driver.create(); 1803 let scrollBar: Component = await driver.findComponent(ON.type('Scroll')); 1804 let button = await scrollBar.scrollSearch(ON.text('next page')); 1805} 1806``` 1807 1808### scrollSearch<sup>18+</sup> 1809 1810scrollSearch(on: On, vertical?: boolean, offset?: number): Promise\<Component> 1811 1812在控件上滑动查找目标控件(适用支持滑动的控件),使用Promise异步回调。 1813 1814**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 1815 1816**系统能力**:SystemCapability.Test.UiTest 1817 1818**参数:** 1819 1820| 参数名 | 类型 | 必填 | 说明 | 1821|------------------------| ---------- | ---- |-----------------------------------| 1822| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1823| vertical | boolean | 否 | 默认为true,表示查找方向是纵向。false表示查找方向为横向。 | 1824| offset | number| 否 | 滑动起点/终点到组件边框的偏移,默认80,单位:px,取值范围:大于等于0的整数。 | 1825 1826**返回值:** 1827 1828| 类型 | 说明 | 1829| ---------------------------------- | ------------------------------------- | 1830| Promise\<[Component](#component9)> | Promise对象,返回目标控件对象。 | 1831 1832**错误码:** 1833 1834以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1835 1836| 错误码ID | 错误信息 | 1837| -------- | ---------------------------------------- | 1838| 17000002 | The async function is not called with await. | 1839| 17000004 | The window or component is invisible or destroyed. | 1840| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 1841 1842**示例:** 1843 1844```ts 1845import { Component, Driver, ON } from '@kit.TestKit'; 1846async function demo() { 1847 let driver: Driver = Driver.create(); 1848 let scrollBar: Component = await driver.findComponent(ON.type('Scroll')); 1849 let button = await scrollBar.scrollSearch(ON.text('next page')); 1850} 1851``` 1852 1853### scrollToTop<sup>9+</sup> 1854 1855scrollToTop(speed?: number): Promise\<void> 1856 1857在控件上滑动到顶部(适用支持滑动的控件),使用Promise异步回调。 1858 1859**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1860 1861**系统能力**:SystemCapability.Test.UiTest 1862 1863**参数:** 1864 1865| 参数名 | 类型 | 必填 | 说明 | 1866| ------ | ------ | ---- |--------------------------------------------------------| 1867| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 1868 1869**返回值:** 1870 1871| 类型 | 说明 | 1872|----------------|-----------------| 1873| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1874 1875**错误码:** 1876 1877以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1878 1879| 错误码ID | 错误信息 | 1880| -------- | ---------------------------------------- | 1881| 17000002 | The async function is not called with await. | 1882| 17000004 | The window or component is invisible or destroyed. | 1883| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 1884 1885**示例:** 1886 1887```ts 1888import { Component, Driver, ON } from '@kit.TestKit'; 1889async function demo() { 1890 let driver: Driver = Driver.create(); 1891 let scrollBar: Component = await driver.findComponent(ON.type('Scroll')); 1892 await scrollBar.scrollToTop(); 1893} 1894``` 1895 1896### scrollToBottom<sup>9+</sup> 1897 1898scrollToBottom(speed?: number): Promise\<void> 1899 1900在控件上滑动到底部(适用支持滑动的控件),使用Promise异步回调。 1901 1902**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1903 1904**系统能力**:SystemCapability.Test.UiTest 1905 1906**参数:** 1907 1908| 参数名 | 类型 | 必填 | 说明 | 1909| ------ | ------ | ---- |--------------------------------------------------------| 1910| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 1911 1912**返回值:** 1913 1914| 类型 | 说明 | 1915|----------------|-----------------| 1916| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1917 1918**错误码:** 1919 1920以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1921 1922| 错误码ID | 错误信息 | 1923| -------- | ---------------------------------------- | 1924| 17000002 | The async function is not called with await. | 1925| 17000004 | The window or component is invisible or destroyed. | 1926| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.| 1927 1928**示例:** 1929 1930```ts 1931import { Component, Driver, ON } from '@kit.TestKit'; 1932async function demo() { 1933 let driver: Driver = Driver.create(); 1934 let scrollBar: Component = await driver.findComponent(ON.type('Scroll')); 1935 await scrollBar.scrollToBottom(); 1936} 1937``` 1938 1939### dragTo<sup>9+</sup> 1940 1941dragTo(target: Component): Promise\<void> 1942 1943将控件拖拽至目标控件处,使用Promise异步回调。 1944 1945**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1946 1947**系统能力**:SystemCapability.Test.UiTest 1948 1949**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 1950 1951**参数:** 1952 1953| 参数名 | 类型 | 必填 | 说明 | 1954| ------ | ------------------------ | ---- | ---------- | 1955| target | [Component](#component9) | 是 | 目标控件。 | 1956 1957**返回值:** 1958 1959| 类型 | 说明 | 1960|----------------|-----------------| 1961| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1962 1963**错误码:** 1964 1965以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 1966 1967| 错误码ID | 错误信息 | 1968| -------- | ---------------------------------------- | 1969| 17000002 | The async function is not called with await. | 1970| 17000004 | The window or component is invisible or destroyed. | 1971| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 1972 1973**示例:** 1974 1975```ts 1976import { Component, Driver, ON } from '@kit.TestKit'; 1977async function demo() { 1978 let driver: Driver = Driver.create(); 1979 let button: Component = await driver.findComponent(ON.type('Button')); 1980 let text: Component = await driver.findComponent(ON.text('hello world')); 1981 await button.dragTo(text); 1982} 1983``` 1984 1985### pinchOut<sup>9+</sup> 1986 1987pinchOut(scale: number): Promise\<void> 1988 1989将控件按指定的比例进行捏合放大,使用Promise异步回调。 1990 1991**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1992 1993**系统能力**:SystemCapability.Test.UiTest 1994 1995**参数:** 1996 1997| 参数名 | 类型 | 必填 | 说明 | 1998| ------ | ------ | ---- | ------------------------------- | 1999| scale | number | 是 | 指定放大的比例。取值范围大于1。 | 2000 2001**返回值:** 2002 2003| 类型 | 说明 | 2004|----------------|-----------------| 2005| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2006 2007**错误码:** 2008 2009以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2010 2011| 错误码ID | 错误信息 | 2012| -------- | ---------------------------------------- | 2013| 17000002 | The async function is not called with await. | 2014| 17000004 | The window or component is invisible or destroyed. | 2015| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2016 2017**示例:** 2018 2019```ts 2020import { Component, Driver, ON } from '@kit.TestKit'; 2021async function demo() { 2022 let driver: Driver = Driver.create(); 2023 let image: Component = await driver.findComponent(ON.type('Image')); 2024 await image.pinchOut(1.5); 2025} 2026``` 2027 2028### pinchIn<sup>9+</sup> 2029 2030pinchIn(scale: number): Promise\<void> 2031 2032将控件按指定的比例进行捏合缩小,使用Promise异步回调。 2033 2034**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2035 2036**系统能力**:SystemCapability.Test.UiTest 2037 2038**参数:** 2039 2040| 参数名 | 类型 | 必填 | 说明 | 2041| ------ | ------ | ---- | ------------------------------- | 2042| scale | number | 是 | 指定缩小的比例。取值范围为0~1。 | 2043 2044**返回值:** 2045 2046| 类型 | 说明 | 2047|----------------|-----------------| 2048| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2049 2050**错误码:** 2051 2052以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2053 2054| 错误码ID | 错误信息 | 2055| -------- | ---------------------------------------- | 2056| 17000002 | The async function is not called with await. | 2057| 17000004 | The window or component is invisible or destroyed. | 2058| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2059 2060**示例:** 2061 2062```ts 2063import { Component, Driver, ON } from '@kit.TestKit'; 2064async function demo() { 2065 let driver: Driver = Driver.create(); 2066 let image: Component = await driver.findComponent(ON.type('Image')); 2067 await image.pinchIn(0.5); 2068} 2069``` 2070 2071### getDescription<sup>11+</sup> 2072 2073getDescription(): Promise\<string> 2074 2075获取控件对象的描述信息,使用Promise异步回调。 2076 2077**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2078 2079**系统能力**:SystemCapability.Test.UiTest 2080 2081**返回值:** 2082 2083| 类型 | 说明 | 2084| ---------------- | --------------------------------- | 2085| Promise\<string> | Promise对象,返回控件的描述信息。 | 2086 2087**错误码:** 2088 2089以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2090 2091| 错误码ID | 错误信息 | 2092| -------- | ------------------------------------------------------------ | 2093| 17000002 | The async function is not called with await. | 2094| 17000004 | The window or component is invisible or destroyed. | 2095 2096**示例:** 2097 2098```ts 2099import { Component, Driver, ON } from '@kit.TestKit'; 2100async function demo() { 2101 let driver: Driver = Driver.create(); 2102 let button: Component = await driver.findComponent(ON.type('Button')); 2103 let description = await button.getDescription(); 2104} 2105``` 2106### getHint<sup>18+</sup> 2107 2108getHint(): Promise\<string> 2109 2110获取控件对象的提示文本,使用Promise异步回调。 2111 2112**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 2113 2114**系统能力**:SystemCapability.Test.UiTest 2115 2116**返回值:** 2117 2118| 类型 | 说明 | 2119| ---------------- |----------------------| 2120| Promise\<string> | Promise对象,返回控件的提示文本。 | 2121 2122**错误码:** 2123 2124以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2125 2126| 错误码ID | 错误信息 | 2127| -------- | ---------------------------------------- | 2128| 17000002 | The async function is not called with await. | 2129| 17000004 | The window or component is invisible or destroyed. | 2130 2131**示例:** 2132 2133```ts 2134import { Component, Driver, ON } from '@kit.TestKit'; 2135async function demo() { 2136 let driver: Driver = Driver.create(); 2137 let button: Component = await driver.findComponent(ON.type('TextInput')); 2138 let hints = await button.getHint(); 2139} 2140``` 2141### getDisplayId<sup>20+</sup> 2142 2143getDisplayId(): Promise\<number> 2144 2145获取控件对象所属的屏幕ID,使用Promise异步回调。 2146 2147**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2148 2149**系统能力**:SystemCapability.Test.UiTest 2150 2151**返回值:** 2152 2153| 类型 | 说明 | 2154| ---------------- |----------------------| 2155| Promise\<number> | Promise对象,返回控件所属的屏幕ID。 | 2156 2157**错误码:** 2158 2159以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2160 2161| 错误码ID | 错误信息 | 2162| -------- | ---------------------------------------- | 2163| 17000002 | The async function is not called with await. | 2164| 17000004 | The window or component is invisible or destroyed. | 2165 2166**示例:** 2167 2168```ts 2169import { Component, Driver, ON } from '@kit.TestKit'; 2170 2171async function demo() { 2172 let driver: Driver = Driver.create(); 2173 let button: Component = await driver.findComponent(ON.type('TextInput')); 2174 let displayId = await button.getDisplayId(); 2175} 2176``` 2177 2178### getOriginalText<sup>20+</sup> 2179 2180getOriginalText(): Promise\<string> 2181 2182获取控件对象的文本信息,使用Promise异步回调。 2183 2184> **说明** 2185> 2186> 如果控件的无障碍属性[accessibilityLevel](../apis-arkui/arkui-ts/ts-universal-attributes-accessibility.md#accessibilitylevel)设置为'no'或'no-hide-descendants',可以使用本接口获取控件的文本信息,无法使用[Component.getText()](#gettext9)获取控件的文本信息。 2187 2188**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2189 2190**系统能力**:SystemCapability.Test.UiTest 2191 2192**返回值:** 2193 2194| 类型 | 说明 | 2195| ---------------- | --------------------------------- | 2196| Promise\<string> | Promise对象,返回控件的文本信息。 | 2197 2198**错误码:** 2199 2200以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2201 2202| 错误码ID | 错误信息 | 2203| -------- | ---------------------------------------- | 2204| 17000002 | The async function is not called with await. | 2205| 17000004 | The window or component is invisible or destroyed. | 2206 2207**示例:** 2208 2209```ts 2210import { Component, Driver, ON } from '@kit.TestKit'; 2211 2212async function demo() { 2213 let driver: Driver = Driver.create(); 2214 let button: Component = await driver.findComponent(ON.type('Button')); 2215 let text = await button.getOriginalText(); 2216} 2217``` 2218 2219## Driver<sup>9+</sup> 2220 2221Driver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。 2222该类提供的方法除Driver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await方式调用。 2223 2224### create<sup>9+</sup> 2225 2226static create(): Driver 2227 2228静态方法,构造一个Driver对象,并返回该对象。 2229 2230**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2231 2232**系统能力**:SystemCapability.Test.UiTest 2233 2234**返回值:** 2235 2236| 类型 | 说明 | 2237| -------- | ---------------------- | 2238| Driver | 返回构造的Driver对象。 | 2239 2240**错误码:** 2241 2242以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2243 2244| 错误码ID | 错误信息 | 2245| -------- | ---------------------- | 2246| 17000001 | Initialization failed. | 2247 2248**示例:** 2249 2250```ts 2251import { Driver } from '@kit.TestKit'; 2252async function demo() { 2253 let driver: Driver = Driver.create(); 2254} 2255``` 2256 2257### delayMs<sup>9+</sup> 2258 2259delayMs(duration: number): Promise\<void> 2260 2261在给定的时间内延时,使用Promise异步回调。 2262 2263**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2264 2265**系统能力**:SystemCapability.Test.UiTest 2266 2267**参数:** 2268 2269| 参数名 | 类型 | 必填 | 说明 | 2270| -------- | ------ | ---- | ------------------------------- | 2271| duration | number | 是 | 给定的时间,单位:ms,取值范围:大于等于0的整数。 | 2272 2273**返回值:** 2274 2275| 类型 | 说明 | 2276|----------------|-----------------| 2277| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2278 2279**错误码:** 2280 2281以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2282 2283| 错误码ID | 错误信息 | 2284| -------- | ---------------------------------------- | 2285| 17000002 | The async function is not called with await. | 2286| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2287 2288**示例:** 2289 2290```ts 2291import { Driver } from '@kit.TestKit'; 2292async function demo() { 2293 let driver: Driver = Driver.create(); 2294 await driver.delayMs(1000); 2295} 2296``` 2297 2298### findComponent<sup>9+</sup> 2299 2300findComponent(on: On): Promise\<Component> 2301 2302根据给出的目标控件属性要求查找目标控件,使用Promise异步回调。 2303 2304**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2305 2306**系统能力**:SystemCapability.Test.UiTest 2307 2308**参数:** 2309 2310| 参数名 | 类型 | 必填 | 说明 | 2311| ------ | ---------- | ---- | -------------------- | 2312| on | [On](#on9) | 是 | 目标控件的属性要求。 | 2313 2314**返回值:** 2315 2316| 类型 | 说明 | 2317| ---------------------------------- | --------------------------------- | 2318| Promise\<[Component](#component9)> | Promise对象,返回控件对象。 | 2319 2320**错误码:** 2321 2322以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2323 2324| 错误码ID | 错误信息 | 2325| -------- | ---------------------------------------- | 2326| 17000002 | The async function is not called with await. | 2327| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2328 2329**示例:** 2330 2331```ts 2332import { Component, Driver, ON } from '@kit.TestKit'; 2333async function demo() { 2334 let driver: Driver = Driver.create(); 2335 let button: Component = await driver.findComponent(ON.text('next page')); 2336} 2337``` 2338 2339### findComponents<sup>9+</sup> 2340 2341findComponents(on: On): Promise\<Array\<Component>> 2342 2343根据给出的目标控件属性要求查找出所有匹配控件,以列表保存,使用Promise异步回调。 2344 2345**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2346 2347**系统能力**:SystemCapability.Test.UiTest 2348 2349**参数:** 2350 2351| 参数名 | 类型 | 必填 | 说明 | 2352| ------ | ---------- | ---- | -------------------- | 2353| on | [On](#on9) | 是 | 目标控件的属性要求。 | 2354 2355**返回值:** 2356 2357| 类型 | 说明 | 2358| ------------------------------------------ | --------------------------------------- | 2359| Promise\<Array\<[Component](#component9)>> | Promise对象,返回控件对象的列表。 | 2360 2361**错误码:** 2362 2363以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2364 2365| 错误码ID | 错误信息 | 2366| -------- | ---------------------------------------- | 2367| 17000002 | The async function is not called with await. | 2368| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2369 2370**示例:** 2371 2372```ts 2373import { Component, Driver, ON } from '@kit.TestKit'; 2374async function demo() { 2375 let driver: Driver = Driver.create(); 2376 let buttonList: Array<Component> = await driver.findComponents(ON.text('next page')); 2377} 2378``` 2379 2380### findWindow<sup>9+</sup> 2381 2382findWindow(filter: WindowFilter): Promise\<UiWindow> 2383 2384通过指定窗口的属性来查找目标窗口,使用Promise异步回调。 2385 2386**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2387 2388**系统能力**:SystemCapability.Test.UiTest 2389 2390**参数:** 2391 2392| 参数名 | 类型 | 必填 | 说明 | 2393| ------ | ------------------------------ | ---- | ---------------- | 2394| filter | [WindowFilter](#windowfilter9) | 是 | 目标窗口的属性。 | 2395 2396**返回值:** 2397 2398| 类型 | 说明 | 2399| -------------------------------- | ------------------------------------- | 2400| Promise\<[UiWindow](#uiwindow9)> | Promise对象,返回目标窗口对象。 | 2401 2402**错误码:** 2403 2404以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2405 2406| 错误码ID | 错误信息 | 2407| -------- | ---------------------------------------- | 2408| 17000002 | The async function is not called with await. | 2409| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2410 2411**示例:** 2412 2413```ts 2414import { Driver, UiWindow } from '@kit.TestKit'; 2415async function demo() { 2416 let driver: Driver = Driver.create(); 2417 let window: UiWindow = await driver.findWindow({actived: true}); 2418} 2419``` 2420 2421### waitForComponent<sup>9+</sup> 2422 2423waitForComponent(on: On, time: number): Promise\<Component> 2424 2425在用户给定的时间内,持续查找满足控件属性要求的目标控件,使用Promise异步回调。 2426 2427**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2428 2429**系统能力**:SystemCapability.Test.UiTest 2430 2431**参数:** 2432 2433| 参数名 | 类型 | 必填 | 说明 | 2434| ------ | ---------- | ---- | ----------------------------------------- | 2435| on | [On](#on9) | 是 | 目标控件的属性要求。 | 2436| time | number | 是 | 查找目标控件的持续时间。单位ms,取值范围:大于等于0的整数。 | 2437 2438**返回值:** 2439 2440| 类型 | 说明 | 2441| --------------------------------- | --------------------------------- | 2442| Promise\<[Component](#component9)> | Promise对象,返回控件对象。 | 2443 2444**错误码:** 2445 2446以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2447 2448| 错误码ID | 错误信息 | 2449| -------- | ---------------------------------------- | 2450| 17000002 | The async function is not called with await. | 2451| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2452 2453**示例:** 2454 2455```ts 2456import { Component, Driver, ON } from '@kit.TestKit'; 2457async function demo() { 2458 let driver: Driver = Driver.create(); 2459 let button: Component = await driver.waitForComponent(ON.text('next page'),500); 2460} 2461``` 2462 2463### assertComponentExist<sup>9+</sup> 2464 2465assertComponentExist(on: On): Promise\<void> 2466 2467断言API,用于断言当前界面是否存在满足给出的目标属性的控件,使用Promise异步回调。 2468 2469**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2470 2471**系统能力**:SystemCapability.Test.UiTest 2472 2473**参数:** 2474 2475| 参数名 | 类型 | 必填 | 说明 | 2476| ------ | ---------- | ---- | -------------------- | 2477| on | [On](#on9) | 是 | 目标控件的属性要求。 | 2478 2479**返回值:** 2480 2481| 类型 | 说明 | 2482|----------------|-----------------| 2483| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2484 2485**错误码:** 2486 2487以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2488 2489| 错误码ID | 错误信息 | 2490| -------- | ---------------------------------------- | 2491| 17000002 | The async function is not called with await. | 2492| 17000003 | Assertion failed. | 2493| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2494 2495**示例:** 2496 2497```ts 2498import { Driver, ON } from '@kit.TestKit'; 2499async function demo() { 2500 let driver: Driver = Driver.create(); 2501 await driver.assertComponentExist(ON.text('next page')); 2502} 2503``` 2504 2505### pressBack<sup>9+</sup> 2506 2507pressBack(): Promise\<void> 2508 2509进行点击BACK键的操作,使用Promise异步回调。 2510 2511**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2512 2513**系统能力**:SystemCapability.Test.UiTest 2514 2515**返回值:** 2516 2517| 类型 | 说明 | 2518|----------------|-----------------| 2519| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2520 2521**错误码:** 2522 2523以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2524 2525| 错误码ID | 错误信息 | 2526| -------- | ---------------------------------------- | 2527| 17000002 | The async function is not called with await. | 2528 2529**示例:** 2530 2531```ts 2532import { Driver } from '@kit.TestKit'; 2533async function demo() { 2534 let driver: Driver = Driver.create(); 2535 await driver.pressBack(); 2536} 2537``` 2538 2539### pressBack<sup>20+</sup> 2540 2541pressBack(displayId: number): Promise\<void> 2542 2543对指定屏幕进行点击BACK键的操作,使用Promise异步回调。 2544 2545**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2546 2547**系统能力**:SystemCapability.Test.UiTest 2548 2549**参数:** 2550 2551| 参数名 | 类型 | 必填 | 说明 | 2552| ------- | ------ | ---- | ------------- | 2553| displayId | number | 是 | 指定的屏幕ID,取值范围:大于等于0的整数。<br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 2554 2555**返回值:** 2556 2557| 类型 | 说明 | 2558|----------------|-----------------| 2559| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2560 2561**错误码:** 2562 2563以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2564 2565| 错误码ID | 错误信息 | 2566| -------- | ---------------------------------------- | 2567| 17000002 | The async function is not called with await. | 2568| 17000007 | Parameter verification failed. | 2569 2570**示例:** 2571 2572```ts 2573import { Driver } from '@kit.TestKit'; 2574async function demo() { 2575 let driver: Driver = Driver.create(); 2576 await driver.pressBack(0); 2577} 2578``` 2579 2580### triggerKey<sup>9+</sup> 2581 2582triggerKey(keyCode: number): Promise\<void> 2583 2584传入key值实现模拟点击对应按键的效果,使用Promise异步回调。 2585 2586**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2587 2588**系统能力**:SystemCapability.Test.UiTest 2589 2590**参数:** 2591 2592| 参数名 | 类型 | 必填 | 说明 | 2593| ------- | ------ | ---- | ------------- | 2594| keyCode | number | 是 | 指定的key值,取值范围:大于等于0的整数。取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2595 2596**返回值:** 2597 2598| 类型 | 说明 | 2599|----------------|-----------------| 2600| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2601 2602**错误码:** 2603 2604以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2605 2606| 错误码ID | 错误信息 | 2607| -------- | ---------------------------------------- | 2608| 17000002 | The async function is not called with await. | 2609| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2610 2611**示例:** 2612 2613```ts 2614import { Driver } from '@kit.TestKit'; 2615import { KeyCode } from '@kit.InputKit'; 2616 2617async function demo() { 2618 let driver: Driver = Driver.create(); 2619 await driver.triggerKey(KeyCode.KEYCODE_BACK); // 返回键 2620} 2621``` 2622 2623### triggerKey<sup>20+</sup> 2624 2625triggerKey(keyCode: number, displayId: number): Promise\<void> 2626 2627在指定屏幕,传入key值实现模拟点击对应按键的效果,使用Promise异步回调。 2628 2629**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2630 2631**系统能力**:SystemCapability.Test.UiTest 2632 2633**参数:** 2634 2635| 参数名 | 类型 | 必填 | 说明 | 2636| ------- | ------ | ---- | ------------- | 2637| keyCode | number | 是 | 指定的key值,取值范围:大于等于0的整数。取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2638| displayId | number | 是 | 指定的屏幕ID,取值范围:大于等于0的整数。<br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 2639 2640**返回值:** 2641 2642| 类型 | 说明 | 2643|----------------|-----------------| 2644| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2645 2646**错误码:** 2647 2648以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2649 2650| 错误码ID | 错误信息 | 2651| -------- | ---------------------------------------- | 2652| 17000002 | The async function is not called with await. | 2653| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2654 2655**示例:** 2656 2657```ts 2658import { Driver } from '@kit.TestKit'; 2659import { KeyCode } from '@kit.InputKit'; 2660 2661async function demo() { 2662 let driver: Driver = Driver.create(); 2663 await driver.triggerKey(KeyCode.KEYCODE_BACK, 0); // 返回键 2664} 2665``` 2666 2667### triggerCombineKeys<sup>9+</sup> 2668 2669triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\<void> 2670 2671通过给定的key值,找到对应组合键并点击,使用Promise异步回调。例如,Key值为(2072, 2019)时,找到key值对应的组合键并点击,如Ctrl+c。 2672 2673**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2674 2675**系统能力**:SystemCapability.Test.UiTest 2676 2677**参数:** 2678 2679| 参数名 | 类型 | 必填 | 说明 | 2680| ------ | ------ | ---- | ------------------------------ | 2681| key0 | number | 是 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2682| key1 | number | 是 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2683| key2 | number | 否 | 指定的第三个key值,取值范围:大于等于0的整数。取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 2684 2685**返回值:** 2686 2687| 类型 | 说明 | 2688|----------------|-----------------| 2689| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2690 2691**错误码:** 2692 2693以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2694 2695| 错误码ID | 错误信息 | 2696| -------- | ---------------------------------------- | 2697| 17000002 | The async function is not called with await. | 2698| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2699 2700**示例:** 2701 2702```ts 2703import { Driver } from '@kit.TestKit'; 2704async function demo() { 2705 let driver: Driver = Driver.create(); 2706 await driver.triggerCombineKeys(2072, 2047, 2035); 2707} 2708``` 2709 2710### triggerCombineKeys<sup>20+</sup> 2711 2712triggerCombineKeys(key0: number, key1: number, key2?: number, displayId?: number): Promise\<void> 2713 2714通过给定的key值,找到对应组合键,并在指定屏幕下进行点击,使用Promise异步回调。例如,Key值为(2072, 2019)时,找到key值对应的组合键并点击,如Ctrl+c。 2715 2716**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2717 2718**系统能力**:SystemCapability.Test.UiTest 2719 2720**参数:** 2721 2722| 参数名 | 类型 | 必填 | 说明 | 2723| ------ | ------ | ---- | ------------------------------ | 2724| key0 | number | 是 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2725| key1 | number | 是 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 2726| key2 | number | 否 | 指定的第三个key值,取值范围:大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 2727| displayId | number | 否 | 指定的屏幕ID,取值范围:大于等于0的整数,默认值为设备默认屏幕ID。 | 2728 2729**返回值:** 2730 2731| 类型 | 说明 | 2732|----------------|-----------------| 2733| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2734 2735**错误码:** 2736 2737以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2738 2739| 错误码ID | 错误信息 | 2740| -------- | ---------------------------------------- | 2741| 17000002 | The async function is not called with await. | 2742| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2743 2744**示例:** 2745 2746```ts 2747import { Driver } from '@kit.TestKit'; 2748 2749async function demo() { 2750 let driver: Driver = Driver.create(); 2751 await driver.triggerCombineKeys(2072, 2047, 2035, 0); 2752} 2753``` 2754 2755### click<sup>9+</sup> 2756 2757click(x: number, y: number): Promise\<void> 2758 2759在目标坐标点单击,使用Promise异步回调。 2760 2761**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2762 2763**系统能力**:SystemCapability.Test.UiTest 2764 2765**参数:** 2766 2767| 参数名 | 类型 | 必填 | 说明 | 2768| ------ | ------ | ---- | ----------------------------------------------- | 2769| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 2770| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 2771 2772**返回值:** 2773 2774| 类型 | 说明 | 2775|----------------|-----------------| 2776| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2777 2778**错误码:** 2779 2780以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2781 2782| 错误码ID | 错误信息 | 2783| -------- | ---------------------------------------- | 2784| 17000002 | The async function is not called with await. | 2785| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2786 2787**示例:** 2788 2789```ts 2790import { Driver } from '@kit.TestKit'; 2791async function demo() { 2792 let driver: Driver = Driver.create(); 2793 await driver.click(100,100); 2794} 2795``` 2796 2797### clickAt<sup>20+</sup> 2798 2799clickAt(point: Point): Promise\<void> 2800 2801在目标坐标点进行单击,使用Promise异步回调。 2802 2803**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2804 2805**系统能力**:SystemCapability.Test.UiTest 2806 2807**参数:** 2808 2809| 参数名 | 类型 | 必填 | 说明 | 2810| ------ | ------ | ---- | ----------------------------------------------- | 2811| point | [Point](#point9) | 是 | 以Point对象的形式传入目标点信息。 | 2812 2813**返回值:** 2814 2815| 类型 | 说明 | 2816|----------------|-----------------| 2817| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2818 2819**错误码:** 2820 2821以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2822 2823| 错误码ID | 错误信息 | 2824| -------- | ---------------------------------------- | 2825| 17000002 | The async function is not called with await. | 2826| 17000007 | Parameter verification failed. | 2827 2828**示例:** 2829 2830```ts 2831import { Driver } from '@kit.TestKit'; 2832 2833async function demo() { 2834 let driver: Driver = Driver.create(); 2835 await driver.clickAt({ x: 100, y: 100, displayId: 0 }); 2836} 2837``` 2838 2839### doubleClick<sup>9+</sup> 2840 2841doubleClick(x: number, y: number): Promise\<void> 2842 2843在目标坐标点双击,使用Promise异步回调。 2844 2845**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2846 2847**系统能力**:SystemCapability.Test.UiTest 2848 2849**参数:** 2850 2851| 参数名 | 类型 | 必填 | 说明 | 2852| ------ | ------ | ---- | ----------------------------------------------- | 2853| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 2854| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 2855 2856**返回值:** 2857 2858| 类型 | 说明 | 2859|----------------|-----------------| 2860| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2861 2862**错误码:** 2863 2864以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2865 2866| 错误码ID | 错误信息 | 2867| -------- | ---------------------------------------- | 2868| 17000002 | The async function is not called with await. | 2869| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2870 2871**示例:** 2872 2873```ts 2874import { Driver } from '@kit.TestKit'; 2875async function demo() { 2876 let driver: Driver = Driver.create(); 2877 await driver.doubleClick(100,100); 2878} 2879``` 2880 2881### doubleClickAt<sup>20+</sup> 2882 2883doubleClickAt(point: Point): Promise\<void> 2884 2885对目标坐标进行双击,使用Promise异步回调。 2886 2887**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2888 2889**系统能力**:SystemCapability.Test.UiTest 2890 2891**参数:** 2892 2893| 参数名 | 类型 | 必填 | 说明 | 2894| ------ | ------ | ---- | ----------------------------------------------- | 2895| point | [Point](#point9) | 是 | 以Point对象的形式传入目标点信息。 | 2896 2897**返回值:** 2898 2899| 类型 | 说明 | 2900|----------------|-----------------| 2901| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2902 2903**错误码:** 2904 2905以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2906 2907| 错误码ID | 错误信息 | 2908| -------- | ---------------------------------------- | 2909| 17000002 | The async function is not called with await. | 2910| 17000007 | Parameter verification failed. | 2911 2912**示例:** 2913 2914```ts 2915import { Driver } from '@kit.TestKit'; 2916 2917async function demo() { 2918 let driver: Driver = Driver.create(); 2919 await driver.doubleClickAt({ x: 100, y: 100, displayId: 0 }); 2920} 2921``` 2922 2923### longClick<sup>9+</sup> 2924 2925longClick(x: number, y: number): Promise\<void> 2926 2927在目标坐标点长按,使用Promise异步回调。 2928 2929**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2930 2931**系统能力**:SystemCapability.Test.UiTest 2932 2933**参数:** 2934 2935| 参数名 | 类型 | 必填 | 说明 | 2936| ------ | ------ | ---- | ----------------------------------------------- | 2937| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 2938| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 2939 2940**返回值:** 2941 2942| 类型 | 说明 | 2943|----------------|-----------------| 2944| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2945 2946**错误码:** 2947 2948以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 2949 2950| 错误码ID | 错误信息 | 2951| -------- | ---------------------------------------- | 2952| 17000002 | The async function is not called with await. | 2953| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 2954 2955**示例:** 2956 2957```ts 2958import { Driver } from '@kit.TestKit'; 2959async function demo() { 2960 let driver: Driver = Driver.create(); 2961 await driver.longClick(100,100); 2962} 2963``` 2964 2965### longClickAt<sup>20+</sup> 2966 2967longClickAt(point: Point, duration?: number): Promise\<void> 2968 2969长按目标坐标点,支持指定长按时长,使用Promise异步回调。 2970 2971**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 2972 2973**系统能力**:SystemCapability.Test.UiTest 2974 2975**参数:** 2976 2977| 参数名 | 类型 | 必填 | 说明 | 2978| ------ | ------ | ---- | ----------------------------------------------- | 2979| point | [Point](#point9) | 是 | 以Point对象的形式传入目标点信息。 | 2980| duration | number | 否 | 长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | 2981 2982**返回值:** 2983 2984| 类型 | 说明 | 2985|----------------|-----------------| 2986| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2987 2988**错误码:** 2989 2990以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 2991 2992| 错误码ID | 错误信息 | 2993| -------- | ---------------------------------------- | 2994| 17000002 | The async function is not called with await. | 2995| 17000007 | Parameter verification failed. | 2996 2997**示例:** 2998 2999```ts 3000import { Driver } from '@kit.TestKit'; 3001 3002async function demo() { 3003 let driver: Driver = Driver.create(); 3004 await driver.longClickAt({ x: 100, y: 100, displayId: 0 }, 1500); 3005} 3006``` 3007 3008### swipe<sup>9+</sup> 3009 3010swipe(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void> 3011 3012从起始坐标点滑向目的坐标点,使用Promise异步回调。 3013 3014**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3015 3016**系统能力**:SystemCapability.Test.UiTest 3017 3018**参数:** 3019 3020| 参数名 | 类型 | 必填 | 说明 | 3021| ------ | ------ | ---- |------------------------------------------------------| 3022| startx | number | 是 | 以number的形式传入起始点的横坐标信息,取值范围:大于等于0的整数。 | 3023| starty | number | 是 | 以number的形式传入起始点的纵坐标信息,取值范围:大于等于0的整数。 | 3024| endx | number | 是 | 以number的形式传入目的点的横坐标信息,取值范围:大于等于0的整数。 | 3025| endy | number | 是 | 以number的形式传入目的点的纵坐标信息,取值范围:大于等于0的整数。 | 3026| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 3027 3028**返回值:** 3029 3030| 类型 | 说明 | 3031|----------------|-----------------| 3032| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3033 3034**错误码:** 3035 3036以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3037 3038| 错误码ID | 错误信息 | 3039| -------- | ---------------------------------------- | 3040| 17000002 | The async function is not called with await. | 3041| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3042 3043**示例:** 3044 3045```ts 3046import { Driver } from '@kit.TestKit'; 3047async function demo() { 3048 let driver: Driver = Driver.create(); 3049 await driver.swipe(100,100,200,200,600); 3050} 3051``` 3052 3053### swipeBetween<sup>20+</sup> 3054 3055swipeBetween(from: Point, to: Point, speed?: number): Promise\<void> 3056 3057从起始坐标点滑向目标坐标点,使用Promise异步回调。 3058 3059**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3060 3061**系统能力**:SystemCapability.Test.UiTest 3062 3063**参数:** 3064 3065| 参数名 | 类型 | 必填 | 说明 | 3066| ------ | ------ | ---- |------------------------------------------------------| 3067| from | [Point](#point9) | 是 | 以Point对象的形式传入起始点的坐标信息和所属屏幕ID。 | 3068| to | [Point](#point9) | 是 | 以Point对象的形式传入终止点的坐标信息和所属屏幕ID。<br> **说明:** 应与起始点属于同一个屏幕,否则将抛出17000007异常。 | 3069| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。| 3070 3071**返回值:** 3072 3073| 类型 | 说明 | 3074|----------------|-----------------| 3075| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3076 3077**错误码:** 3078 3079以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3080 3081| 错误码ID | 错误信息 | 3082| -------- | ---------------------------------------- | 3083| 17000002 | The async function is not called with await. | 3084| 17000007 | Parameter verification failed. | 3085 3086**示例:** 3087 3088```ts 3089import { Driver } from '@kit.TestKit'; 3090 3091async function demo() { 3092 let driver: Driver = Driver.create(); 3093 await driver.swipeBetween({x: 100, y: 100, displayId: 0}, {x: 1000, y: 1000, displayId: 0}, 800); 3094} 3095``` 3096 3097### drag<sup>9+</sup> 3098 3099drag(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void> 3100 3101从起始坐标点拖拽至目的坐标点,使用Promise异步回调。 3102 3103**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3104 3105**系统能力**:SystemCapability.Test.UiTest 3106 3107**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3108 3109**参数:** 3110 3111| 参数名 | 类型 | 必填 | 说明 | 3112| ------ | ------ | ---- | ------------------------------------------------------------ | 3113| startx | number | 是 | 以number的形式传入起始点的横坐标信息,取值范围:大于等于0的整数。 | 3114| starty | number | 是 | 以number的形式传入起始点的纵坐标信息,取值范围:大于等于0的整数。 | 3115| endx | number | 是 | 以number的形式传入目的点的横坐标信息,取值范围:大于等于0的整数。 | 3116| endy | number | 是 | 以number的形式传入目的点的纵坐标信息,取值范围:大于等于0的整数。 | 3117| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。| 3118 3119**返回值:** 3120 3121| 类型 | 说明 | 3122|----------------|-----------------| 3123| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3124 3125**错误码:** 3126 3127以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3128 3129| 错误码ID | 错误信息 | 3130| -------- | ---------------------------------------- | 3131| 17000002 | The async function is not called with await. | 3132| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3133 3134**示例:** 3135 3136```ts 3137import { Driver } from '@kit.TestKit'; 3138 3139async function demo() { 3140 let driver: Driver = Driver.create(); 3141 await driver.drag(100, 100, 200, 200, 600); 3142} 3143``` 3144 3145### dragBetween<sup>20+</sup> 3146 3147dragBetween(from: Point, to: Point, speed?: number, duration?: number): Promise\<void> 3148 3149从起始坐标点拖拽至目标坐标点,支持指定拖拽速度和拖拽前长按时间,使用Promise异步回调。 3150 3151**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3152 3153**系统能力**:SystemCapability.Test.UiTest 3154 3155**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3156 3157**参数:** 3158 3159| 参数名 | 类型 | 必填 | 说明 | 3160| ------ | ------ | ---- |--------------------------------------------------------| 3161| from | [Point](#point9) | 是 | 以Point对象的形式传入起始点的坐标信息和所属屏幕ID。 | 3162| to | [Point](#point9) | 是 | 以Point对象的形式传入终止点的坐标信息和所属屏幕ID。<br> **说明:** 应与起始点属于同一个屏幕,否则将抛出17000007异常。 | 3163| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。| 3164| duration | number | 否 | 拖拽前长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | 3165 3166**返回值:** 3167 3168| 类型 | 说明 | 3169|----------------|-----------------| 3170| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3171 3172**错误码:** 3173 3174以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3175 3176| 错误码ID | 错误信息 | 3177| -------- | ---------------------------------------- | 3178| 17000002 | The async function is not called with await. | 3179| 17000007 | Parameter verification failed. | 3180 3181**示例:** 3182 3183```ts 3184import { Driver } from '@kit.TestKit'; 3185 3186async function demo() { 3187 let driver: Driver = Driver.create(); 3188 await driver.dragBetween( {x: 100, y: 100, displayId: 0}, {x: 1000, y: 1000, displayId: 0}, 800, 1500); 3189} 3190``` 3191 3192### screenCap<sup>9+</sup> 3193 3194screenCap(savePath: string): Promise\<boolean> 3195 3196捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中,使用Promise异步回调。适用于支持截屏的场景。 3197 3198**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3199 3200**系统能力**:SystemCapability.Test.UiTest 3201 3202**参数:** 3203 3204| 参数名 | 类型 | 必填 | 说明 | 3205| -------- | ------ | ---- | ------------------------------------------ | 3206| savePath | string | 是 | 文件保存路径。路径需为当前应用的[沙箱路径](../../file-management/app-sandbox-directory.md)。 | 3207 3208**返回值:** 3209 3210| 类型 | 说明 | 3211| ----------------- |-------------------------------------------| 3212| Promise\<boolean> | Promise对象,返回截图操作是否成功完成。true:完成,false:未完成。 | 3213 3214**错误码:** 3215 3216以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3217 3218| 错误码ID | 错误信息 | 3219| -------- | ---------------------------------------- | 3220| 17000002 | The async function is not called with await. | 3221| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3222 3223**示例:** 3224 3225```ts 3226import { Driver } from '@kit.TestKit'; 3227async function demo() { 3228 let driver: Driver = Driver.create(); 3229 await driver.screenCap('/data/storage/el2/base/cache/1.png'); 3230} 3231``` 3232 3233### screenCap<sup>20+</sup> 3234 3235screenCap(savePath: string, displayId: number): Promise\<boolean> 3236 3237捕获指定屏幕,并保存为PNG格式的图片至给出的保存路径中,使用Promise异步回调。适用于支持截屏的场景。 3238 3239**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3240 3241**系统能力**:SystemCapability.Test.UiTest 3242 3243**参数:** 3244 3245| 参数名 | 类型 | 必填 | 说明 | 3246| -------- | ------ | ---- | ------------------------------------------ | 3247| savePath | string | 是 | 文件保存路径。路径需为当前应用的[沙箱路径](../../file-management/app-sandbox-directory.md)。 | 3248| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3249 3250**返回值:** 3251 3252| 类型 | 说明 | 3253| ----------------- |-------------------------------------------| 3254| Promise\<boolean> | Promise对象,返回截图操作是否成功完成。true:完成。false:未完成。 | 3255 3256**错误码:** 3257 3258以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3259 3260| 错误码ID | 错误信息 | 3261| -------- | ---------------------------------------- | 3262| 17000002 | The async function is not called with await. | 3263| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3264 3265**示例:** 3266 3267```ts 3268import { Driver } from '@kit.TestKit'; 3269 3270async function demo() { 3271 let driver: Driver = Driver.create(); 3272 await driver.screenCap('/data/storage/el2/base/cache/1.png', 0); 3273} 3274``` 3275 3276### setDisplayRotation<sup>9+</sup> 3277 3278setDisplayRotation(rotation: DisplayRotation): Promise\<void> 3279 3280将当前场景的显示方向设置为指定的显示方向,使用Promise异步回调。适用于可旋转的应用场景。 3281 3282**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3283 3284**系统能力**:SystemCapability.Test.UiTest 3285 3286**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3287 3288**参数:** 3289 3290| 参数名 | 类型 | 必填 | 说明 | 3291| -------- | ------------------------------------ | ---- | ---------------- | 3292| rotation | [DisplayRotation](#displayrotation9) | 是 | 设备的显示方向。 | 3293 3294**返回值:** 3295 3296| 类型 | 说明 | 3297|----------------|-----------------| 3298| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3299 3300**错误码:** 3301 3302以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3303 3304| 错误码ID | 错误信息 | 3305| -------- | ---------------------------------------- | 3306| 17000002 | The async function is not called with await. | 3307| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3308 3309**示例:** 3310 3311```ts 3312import { Driver, DisplayRotation } from '@kit.TestKit'; 3313async function demo() { 3314 let driver: Driver = Driver.create(); 3315 await driver.setDisplayRotation(DisplayRotation.ROTATION_180); 3316} 3317``` 3318 3319### getDisplayRotation<sup>9+</sup> 3320 3321getDisplayRotation(): Promise\<DisplayRotation> 3322 3323获取当前设备的屏幕显示方向,使用Promise异步回调。 3324 3325**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3326 3327**系统能力**:SystemCapability.Test.UiTest 3328 3329**返回值:** 3330 3331| 类型 | 说明 | 3332| ---------------------------------------------- | --------------------------------------- | 3333| Promise\<[DisplayRotation](#displayrotation9)> | Promise对象,返回当前设备的显示方向。 | 3334 3335**错误码:** 3336 3337以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3338 3339| 错误码ID | 错误信息 | 3340| -------- | ---------------------------------------- | 3341| 17000002 | The async function is not called with await. | 3342 3343**示例:** 3344 3345```ts 3346import { DisplayRotation, Driver } from '@kit.TestKit'; 3347async function demo() { 3348 let driver: Driver = Driver.create(); 3349 let rotation: DisplayRotation = await driver.getDisplayRotation(); 3350} 3351``` 3352 3353### getDisplayRotation<sup>20+</sup> 3354 3355getDisplayRotation(displayId: number): Promise\<DisplayRotation> 3356 3357获取当前设备指定屏幕的显示方向,使用Promise异步回调。 3358 3359**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3360 3361**系统能力**:SystemCapability.Test.UiTest 3362 3363**参数:** 3364 3365| 参数名 | 类型 | 必填 | 说明 | 3366| -------- | ------ | ---- | ------------------------------------------ | 3367| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3368 3369**返回值:** 3370 3371| 类型 | 说明 | 3372| ---------------------------------------------- | --------------------------------------- | 3373| Promise\<[DisplayRotation](#displayrotation9)> | Promise对象,返回指定屏幕的显示方向。 | 3374 3375**错误码:** 3376 3377以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3378 3379| 错误码ID | 错误信息 | 3380| -------- | ---------------------------------------- | 3381| 17000002 | The async function is not called with await. | 3382| 17000007 | Parameter verification failed. | 3383 3384**示例:** 3385 3386```ts 3387import { DisplayRotation, Driver } from '@kit.TestKit'; 3388 3389async function demo() { 3390 let driver: Driver = Driver.create(); 3391 let rotation: DisplayRotation = await driver.getDisplayRotation(0); 3392} 3393``` 3394 3395### setDisplayRotationEnabled<sup>9+</sup> 3396 3397setDisplayRotationEnabled(enabled: boolean): Promise\<void> 3398 3399启用/禁用设备旋转屏幕的功能,使用Promise异步回调。 3400 3401**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3402 3403**系统能力**:SystemCapability.Test.UiTest 3404 3405**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3406 3407**参数:** 3408 3409| 参数名 | 类型 | 必填 | 说明 | 3410| ------- | ------- | ---- | ------------------------------------------------------- | 3411| enabled | boolean | 是 | 能否旋转屏幕的标识。true:可以旋转。false:不可以旋转。 | 3412 3413**返回值:** 3414 3415| 类型 | 说明 | 3416|----------------|-----------------| 3417| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3418 3419**错误码:** 3420 3421以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3422 3423| 错误码ID | 错误信息 | 3424| -------- | ---------------------------------------- | 3425| 17000002 | The async function is not called with await. | 3426| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3427 3428**示例:** 3429 3430```ts 3431import { Driver } from '@kit.TestKit'; 3432async function demo() { 3433 let driver: Driver = Driver.create(); 3434 await driver.setDisplayRotationEnabled(false); 3435} 3436``` 3437 3438### getDisplaySize<sup>9+</sup> 3439 3440getDisplaySize(): Promise\<Point> 3441 3442获取当前设备的屏幕大小,使用Promise异步回调。 3443 3444**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3445 3446**系统能力**:SystemCapability.Test.UiTest 3447 3448**返回值:** 3449 3450| 类型 | 说明 | 3451| -------------------------- | --------------------------------------- | 3452| Promise\<[Point](#point9)> | Promise对象,返回Point对象,当前设备屏幕的大小为Point.x * Point.y。 | 3453 3454**错误码:** 3455 3456以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3457 3458| 错误码ID | 错误信息 | 3459| -------- | ---------------------------------------- | 3460| 17000002 | The async function is not called with await. | 3461 3462**示例:** 3463 3464```ts 3465import { Driver } from '@kit.TestKit'; 3466 3467async function demo() { 3468 let driver: Driver = Driver.create(); 3469 let size = await driver.getDisplaySize(); 3470} 3471``` 3472 3473### getDisplaySize<sup>20+</sup> 3474 3475getDisplaySize(displayId: number): Promise\<Point> 3476 3477获取当前设备指定屏幕的大小,使用Promise异步回调。 3478 3479**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3480 3481**系统能力**:SystemCapability.Test.UiTest 3482 3483**参数:** 3484 3485| 参数名 | 类型 | 必填 | 说明 | 3486| -------- | ------ | ---- | ------------------------------------------ | 3487| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3488 3489**返回值:** 3490 3491| 类型 | 说明 | 3492| -------------------------- | --------------------------------------- | 3493| Promise\<[Point](#point9)> | Promise对象,返回Point对象,当前设备指定屏幕的大小为Point.x * Point.y。 | 3494 3495**错误码:** 3496 3497以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3498 3499| 错误码ID | 错误信息 | 3500| -------- | ---------------------------------------- | 3501| 17000002 | The async function is not called with await. | 3502| 17000007 | Parameter verification failed. | 3503 3504**示例:** 3505 3506```ts 3507import { Driver } from '@kit.TestKit'; 3508 3509async function demo() { 3510 let driver: Driver = Driver.create(); 3511 let size = await driver.getDisplaySize(0); 3512} 3513``` 3514 3515### getDisplayDensity<sup>9+</sup> 3516 3517getDisplayDensity(): Promise\<Point> 3518 3519获取当前设备屏幕的分辨率,使用Promise异步回调。 3520 3521**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3522 3523**系统能力**:SystemCapability.Test.UiTest 3524 3525**返回值:** 3526 3527| 类型 | 说明 | 3528| -------------------------- | ----------------------------------------- | 3529| Promise\<[Point](#point9)> | Promise对象,返回Point对象,当前设备屏幕的分辨率为Point.x*Point.y。 | 3530 3531**错误码:** 3532 3533以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3534 3535| 错误码ID | 错误信息 | 3536| -------- | ---------------------------------------- | 3537| 17000002 | The async function is not called with await. | 3538 3539**示例:** 3540 3541```ts 3542import { Driver } from '@kit.TestKit'; 3543async function demo() { 3544 let driver: Driver = Driver.create(); 3545 let density = await driver.getDisplayDensity(); 3546} 3547``` 3548 3549### getDisplayDensity<sup>20+</sup> 3550 3551getDisplayDensity(displayId: number): Promise\<Point> 3552 3553获取当前设备指定屏幕的分辨率,使用Promise异步回调。 3554 3555**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3556 3557**系统能力**:SystemCapability.Test.UiTest 3558 3559**参数:** 3560 3561| 参数名 | 类型 | 必填 | 说明 | 3562| -------- | ------ | ---- | ------------------------------------------ | 3563| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3564 3565**返回值:** 3566 3567| 类型 | 说明 | 3568| -------------------------- | ----------------------------------------- | 3569| Promise\<[Point](#point9)> | Promise对象,返回Point对象,当前设备指定屏幕的分辨率为Point.x*Point.y。 | 3570 3571**错误码:** 3572 3573以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3574 3575| 错误码ID | 错误信息 | 3576| -------- | ---------------------------------------- | 3577| 17000002 | The async function is not called with await. | 3578| 17000007 | Parameter verification failed. | 3579 3580**示例:** 3581 3582```ts 3583import { Driver } from '@kit.TestKit'; 3584 3585async function demo() { 3586 let driver: Driver = Driver.create(); 3587 let density = await driver.getDisplayDensity(0); 3588} 3589``` 3590 3591### wakeUpDisplay<sup>9+</sup> 3592 3593wakeUpDisplay(): Promise\<void> 3594 3595唤醒当前设备即设备亮屏,使用Promise异步回调。 3596 3597**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3598 3599**系统能力**:SystemCapability.Test.UiTest 3600 3601**返回值:** 3602 3603| 类型 | 说明 | 3604|----------------|-----------------| 3605| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3606 3607**错误码:** 3608 3609以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3610 3611| 错误码ID | 错误信息 | 3612| -------- | ---------------------------------------- | 3613| 17000002 | The async function is not called with await. | 3614 3615**示例:** 3616 3617```ts 3618import { Driver } from '@kit.TestKit'; 3619async function demo() { 3620 let driver: Driver = Driver.create(); 3621 await driver.wakeUpDisplay(); 3622} 3623``` 3624 3625### pressHome<sup>9+</sup> 3626 3627pressHome(): Promise\<void> 3628 3629设备注入返回桌面操作,使用Promise异步回调。 3630 3631**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3632 3633**系统能力**:SystemCapability.Test.UiTest 3634 3635**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3636 3637**返回值:** 3638 3639| 类型 | 说明 | 3640|----------------|-----------------| 3641| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3642 3643**错误码:** 3644 3645以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3646 3647| 错误码ID | 错误信息 | 3648| -------- | ---------------------------------------- | 3649| 17000002 | The async function is not called with await. | 3650 3651**示例:** 3652 3653```ts 3654import { Driver } from '@kit.TestKit'; 3655async function demo() { 3656 let driver: Driver = Driver.create(); 3657 await driver.pressHome(); 3658} 3659``` 3660 3661### pressHome<sup>20+</sup> 3662 3663pressHome(displayId: number): Promise\<void> 3664 3665设备指定屏幕上注入返回桌面操作,使用Promise异步回调。 3666 3667**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3668 3669**系统能力**:SystemCapability.Test.UiTest 3670 3671**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 3672 3673**参数:** 3674 3675| 参数名 | 类型 | 必填 | 说明 | 3676| -------- | ------ | ---- | ------------------------------------------ | 3677| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3678 3679**返回值:** 3680 3681| 类型 | 说明 | 3682|----------------|-----------------| 3683| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3684 3685**错误码:** 3686 3687以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 3688 3689| 错误码ID | 错误信息 | 3690| -------- | ---------------------------------------- | 3691| 17000002 | The async function is not called with await. | 3692| 17000007 | Parameter verification failed. | 3693 3694**示例:** 3695 3696```ts 3697import { Driver } from '@kit.TestKit'; 3698 3699async function demo() { 3700 let driver: Driver = Driver.create(); 3701 await driver.pressHome(0); 3702} 3703``` 3704 3705### waitForIdle<sup>9+</sup> 3706 3707waitForIdle(idleTime: number, timeout: number): Promise\<boolean> 3708 3709判断当前界面的所有控件是否已经空闲,使用Promise异步回调。 3710 3711**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3712 3713**系统能力**:SystemCapability.Test.UiTest 3714 3715**参数:** 3716 3717| 参数名 | 类型 | 必填 | 说明 | 3718| -------- | ------ | ---- | ------------------------------------------------------------ | 3719| idleTime | number | 是 | 空闲时间的阈值。在这个时间段控件不发生变化,视为该控件空闲,单位:毫秒,取值范围:大于等于0的整数。 | 3720| timeout | number | 是 | 等待空闲的最大时间,单位:毫秒,取值范围:大于等于0的整数。 | 3721 3722**返回值:** 3723 3724| 类型 | 说明 | 3725| ----------------- |---------------------------------------------------| 3726| Promise\<boolean> | Promise对象,返回当前界面的所有控件是否已经空闲。true:已经空闲,false:不空闲。 | 3727 3728**错误码:** 3729 3730以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3731 3732| 错误码ID | 错误信息 | 3733| -------- | ---------------------------------------- | 3734| 17000002 | The async function is not called with await. | 3735| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3736 3737**示例:** 3738 3739```ts 3740import { Driver } from '@kit.TestKit'; 3741async function demo() { 3742 let driver: Driver = Driver.create(); 3743 let idled:boolean = await driver.waitForIdle(4000,5000); 3744} 3745``` 3746 3747### fling<sup>9+</sup> 3748 3749fling(from: Point, to: Point, stepLen: number, speed: number): Promise\<void> 3750 3751模拟手指滑动后脱离屏幕的快速滑动操作,使用Promise异步回调。 3752 3753**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3754 3755**系统能力**:SystemCapability.Test.UiTest 3756 3757**参数:** 3758 3759| 参数名 | 类型 | 必填 | 说明 | 3760| ------- | ---------------- | ---- |------------------------------------------------------| 3761| from | [Point](#point9) | 是 | 手指接触屏幕的起始点坐标。 | 3762| to | [Point](#point9) | 是 | 手指离开屏幕时的坐标点。 | 3763| stepLen | number | 是 | 间隔距离,取值大于等于0的整数,单位:px。 | 3764| speed | number | 是 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 3765 3766**返回值:** 3767 3768| 类型 | 说明 | 3769|----------------|-----------------| 3770| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3771 3772**错误码:** 3773 3774以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3775 3776| 错误码ID | 错误信息 | 3777| -------- | ---------------------------------------- | 3778| 17000002 | The async function is not called with await. | 3779| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3780 3781**示例:** 3782 3783```ts 3784import { Driver } from '@kit.TestKit'; 3785 3786async function demo() { 3787 let driver: Driver = Driver.create(); 3788 await driver.fling({x: 500, y: 480},{x: 450, y: 480}, 5, 600); 3789} 3790``` 3791 3792### injectMultiPointerAction<sup>9+</sup> 3793 3794injectMultiPointerAction(pointers: PointerMatrix, speed?: number): Promise\<boolean> 3795 3796向设备注入多指操作,使用Promise异步回调。 3797 3798**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3799 3800**系统能力**:SystemCapability.Test.UiTest 3801 3802**参数:** 3803 3804| 参数名 | 类型 | 必填 | 说明 | 3805| -------- | -------------------------------- | ---- |--------------------------------------------------------| 3806| pointers | [PointerMatrix](#pointermatrix9) | 是 | 滑动轨迹,包括操作手指个数和滑动坐标序列。 | 3807| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 3808 3809**返回值:** 3810 3811| 类型 | 说明 | 3812| ----------------- | ------------------------------------- | 3813| Promise\<boolean> | Promise对象,返回操作是否成功完成。true:完成,false:未完成。 | 3814 3815**错误码:** 3816 3817以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3818 3819| 错误码ID | 错误信息 | 3820| -------- | ---------------------------------------- | 3821| 17000002 | The async function is not called with await. | 3822| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3823 3824**示例:** 3825 3826```ts 3827import { Driver, PointerMatrix } from '@kit.TestKit'; 3828 3829async function demo() { 3830 let driver: Driver = Driver.create(); 3831 let pointers: PointerMatrix = PointerMatrix.create(2, 5); 3832 pointers.setPoint(0, 0, {x:250, y:480}); 3833 pointers.setPoint(0, 1, {x:250, y:440}); 3834 pointers.setPoint(0, 2, {x:250, y:400}); 3835 pointers.setPoint(0, 3, {x:250, y:360}); 3836 pointers.setPoint(0, 4, {x:250, y:320}); 3837 pointers.setPoint(1, 0, {x:250, y:480}); 3838 pointers.setPoint(1, 1, {x:250, y:440}); 3839 pointers.setPoint(1, 2, {x:250, y:400}); 3840 pointers.setPoint(1, 3, {x:250, y:360}); 3841 pointers.setPoint(1, 4, {x:250, y:320}); 3842 await driver.injectMultiPointerAction(pointers); 3843} 3844``` 3845 3846### fling<sup>10+</sup> 3847 3848fling(direction: UiDirection, speed: number): Promise\<void>; 3849 3850指定方向和速度,模拟手指滑动后脱离屏幕的快速滑动操作,使用Promise异步回调。 3851 3852**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3853 3854**系统能力**:SystemCapability.Test.UiTest 3855 3856**参数:** 3857 3858| 参数名 | 类型 | 必填 | 说明 | 3859| --------- | ----------------------------- | ---- |--------------------------------------------------------| 3860| direction | [UiDirection](#uidirection10) | 是 | 进行抛滑的方向。 | 3861| speed | number | 是 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 3862 3863**返回值:** 3864 3865| 类型 | 说明 | 3866|----------------|-----------------| 3867| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3868 3869**错误码:** 3870 3871以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3872 3873| 错误码ID | 错误信息 | 3874| -------- | ------------------------------------------------------------ | 3875| 17000002 | The async function is not called with await. | 3876| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3877 3878**示例:** 3879 3880```ts 3881import { Driver, UiDirection } from '@kit.TestKit'; 3882async function demo() { 3883 let driver: Driver = Driver.create(); 3884 await driver.fling(UiDirection.DOWN, 10000); 3885} 3886``` 3887 3888### fling<sup>20+</sup> 3889 3890fling(direction: UiDirection, speed: number, displayId: number): Promise\<void> 3891 3892指定方向和速度,模拟手指滑动后脱离屏幕的快速滑动操作,使用Promise异步回调。 3893 3894**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 3895 3896**系统能力**:SystemCapability.Test.UiTest 3897 3898**参数:** 3899 3900| 参数名 | 类型 | 必填 | 说明 | 3901| --------- | ----------------------------- | ---- |--------------------------------------------------------| 3902| direction | [UiDirection](#uidirection10) | 是 | 进行抛滑的方向。 | 3903| speed | number | 是 | 滑动速率,取值范围为200-40000,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 3904| displayId | number | 是 | 指定设备屏幕ID。取值范围:大于等于0的整数。 <br> **说明:** 传入displayId不存在时,将抛出17000007异常。 | 3905 3906**返回值:** 3907 3908| 类型 | 说明 | 3909|----------------|-----------------| 3910| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3911 3912**错误码:** 3913 3914以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3915 3916| 错误码ID | 错误信息 | 3917| -------- | ------------------------------------------------------------ | 3918| 17000002 | The async function is not called with await. | 3919| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3920 3921**示例:** 3922 3923```ts 3924import { Driver, UiDirection } from '@kit.TestKit'; 3925 3926async function demo() { 3927 let driver: Driver = Driver.create(); 3928 await driver.fling(UiDirection.DOWN, 10000, 0); 3929} 3930``` 3931 3932### screenCapture<sup>10+</sup> 3933 3934screenCapture(savePath: string, rect?: Rect): Promise\<boolean>; 3935 3936捕获当前屏幕的指定区域,并保存为PNG格式的图片至给出的保存路径中,使用Promise异步回调。适用于支持截屏的场景。 3937 3938**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3939 3940**系统能力**:SystemCapability.Test.UiTest 3941 3942**参数:** 3943 3944| 参数名 | 类型 | 必填 | 说明 | 3945| -------- | -------------- | ---- | ------------------------------------------ | 3946| savePath | string | 是 | 文件保存路径。路径需为当前应用的[沙箱路径](../../file-management/app-sandbox-directory.md)。 | 3947| rect | [Rect](#rect9) | 否 | 截图区域,默认为全屏。 | 3948 3949**返回值:** 3950 3951| 类型 | 说明 | 3952| ----------------- |---------------------------------------------| 3953| Promise\<boolean> | Promise对象,返回截图操作是否成功完成。true:成功完成,false:未成功完成。 | 3954 3955**错误码:** 3956 3957以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 3958 3959| 错误码ID | 错误信息 | 3960| -------- | ------------------------------------------------------------ | 3961| 17000002 | The async function is not called with await. | 3962| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 3963 3964**示例:** 3965 3966```ts 3967import { Driver } from '@kit.TestKit'; 3968async function demo() { 3969 let driver: Driver = Driver.create(); 3970 await driver.screenCapture('/data/storage/el2/base/cache/1.png', {left: 0, top: 0, right: 100, bottom: 100}); 3971} 3972``` 3973 3974### mouseClick<sup>10+</sup> 3975 3976mouseClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void>; 3977 3978在指定坐标点注入鼠标点击动作,支持同时按下对应键盘组合键,使用Promise异步回调。例如,Key值为2072时,按下Ctrl并进行鼠标点击动作。 3979 3980**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3981 3982**系统能力**:SystemCapability.Test.UiTest 3983 3984**参数:** 3985 3986| 参数名 | 类型 | 必填 | 说明 | 3987| ------ | ----------------------------- | ---- | ------------------------------ | 3988| p | [Point](#point9) | 是 | 鼠标点击的坐标。 | 3989| btnId | [MouseButton](#mousebutton10) | 是 | 按下的鼠标按钮。 | 3990| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 3991| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 3992 3993**返回值:** 3994 3995| 类型 | 说明 | 3996|----------------|-----------------| 3997| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3998 3999**错误码:** 4000 4001以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4002 4003| 错误码ID | 错误信息 | 4004| -------- | ------------------------------------------------------------ | 4005| 17000002 | The async function is not called with await. | 4006| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4007 4008**示例:** 4009 4010```ts 4011import { Driver,MouseButton } from '@kit.TestKit'; 4012async function demo() { 4013 let driver: Driver = Driver.create(); 4014 await driver.mouseClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072); 4015} 4016``` 4017 4018### mouseScroll<sup>10+</sup> 4019 4020mouseScroll(p: Point, down: boolean, d: number, key1?: number, key2?: number): Promise\<void>; 4021 4022在指定坐标点注入鼠标滚轮滑动动作,支持同时按下对应键盘组合键,使用Promise异步回调。例如,Key值为2072时,按下Ctrl并进行鼠标滚轮滑动动作。 4023 4024**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4025 4026**系统能力**:SystemCapability.Test.UiTest 4027 4028**参数:** 4029 4030| 参数名 | 类型 | 必填 | 说明 | 4031| ------ | ---------------- | ---- | ----------------------------------------------------------- | 4032| p | [Point](#point9) | 是 | 鼠标点击的坐标。 | 4033| down | boolean | 是 | 滚轮滑动方向是否向下。true表示向下滑动。false表示向上滚动。 | 4034| d | number | 是 | 鼠标滚轮滚动的格数,取值大于等于0的整数,每格对应目标点位移120px。 | 4035| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4036| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4037 4038**返回值:** 4039 4040| 类型 | 说明 | 4041|----------------|-----------------| 4042| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4043 4044**错误码:** 4045 4046以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4047 4048| 错误码ID | 错误信息 | 4049| -------- | ------------------------------------------------------------ | 4050| 17000002 | The async function is not called with await. | 4051| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4052 4053**示例:** 4054 4055```ts 4056import { Driver } from '@kit.TestKit'; 4057 4058async function demo() { 4059 let driver: Driver = Driver.create(); 4060 await driver.mouseScroll({x:360, y:640}, true, 30, 2072); 4061} 4062``` 4063 4064### mouseMoveTo<sup>10+</sup> 4065 4066mouseMoveTo(p: Point): Promise\<void>; 4067 4068将鼠标光标移到目标点,使用Promise异步回调。 4069 4070**系统能力**:SystemCapability.Test.UiTest 4071 4072**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4073 4074**参数:** 4075 4076| 参数名 | 类型 | 必填 | 说明 | 4077| ------ | ---------------- | ---- | -------------- | 4078| p | [Point](#point9) | 是 | 目标点的坐标。 | 4079 4080**返回值:** 4081 4082| 类型 | 说明 | 4083|----------------|-----------------| 4084| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4085 4086**错误码:** 4087 4088以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4089 4090| 错误码ID | 错误信息 | 4091| -------- | ------------------------------------------------------------ | 4092| 17000002 | The async function is not called with await. | 4093| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4094 4095**示例:** 4096 4097```ts 4098import { Driver } from '@kit.TestKit'; 4099 4100async function demo() { 4101 let driver: Driver = Driver.create(); 4102 await driver.mouseMoveTo({x:100, y:100}); 4103} 4104``` 4105 4106### createUIEventObserver<sup>10+</sup> 4107 4108createUIEventObserver(): UIEventObserver; 4109 4110创建一个UI事件监听器。 4111 4112**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4113 4114**系统能力**:SystemCapability.Test.UiTest 4115 4116**返回值:** 4117 4118| 类型 | 说明 | 4119| ------------------------------------ | ------------------------------------- | 4120|[UIEventObserver](#uieventobserver10) | 返回找到的目标窗口对象。 | 4121 4122**错误码:** 4123 4124以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 4125 4126| 错误码ID | 错误信息 | 4127| -------- | ---------------------------------------- | 4128| 17000002 | The async function is not called with await. | 4129 4130**示例:** 4131 4132```ts 4133import { Driver, UIEventObserver } from '@kit.TestKit'; 4134 4135async function demo() { 4136 let driver: Driver = Driver.create(); 4137 let observer: UIEventObserver = await driver.createUIEventObserver(); 4138} 4139``` 4140 4141### mouseScroll<sup>11+</sup> 4142 4143mouseScroll(p: Point, down: boolean, d: number, key1?: number, key2?: number, speed?: number): Promise\<void> 4144 4145在指定坐标点注入鼠标滚轮滑动动作,支持同时按下对应键盘组合键并且指定滑动速度,使用Promise异步回调。 4146 4147**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4148 4149**系统能力**:SystemCapability.Test.UiTest 4150 4151**参数:** 4152 4153| 参数名 | 类型 | 必填 | 说明 | 4154| ------ | ---------------- | ---- | ------------------------------------------------------------ | 4155| p | [Point](#point9) | 是 | 鼠标点击的坐标。 | 4156| down | boolean | 是 | 滚轮滑动方向是否向下。true表示向下滑动。false表示向上滚动。 | 4157| d | number | 是 | 鼠标滚轮滚动的格数,取值大于等于0的整数,每格对应目标点位移120px。 | 4158| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4159| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4160| speed | number | 否 | 鼠标滚轮滚动的速度,范围:1-500的整数,不在范围内设为默认值为20,单位:格/秒。 | 4161 4162**返回值:** 4163 4164| 类型 | 说明 | 4165|----------------|-----------------| 4166| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4167 4168**错误码:** 4169 4170以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4171 4172| 错误码ID | 错误信息 | 4173| -------- | ------------------------------------------------------------ | 4174| 17000002 | The async function is not called with await. | 4175| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4176 4177**示例:** 4178 4179```ts 4180import { Driver } from '@kit.TestKit'; 4181 4182async function demo() { 4183 let driver: Driver = Driver.create(); 4184 await driver.mouseScroll({x:360, y:640}, true, 30, 2072,20); 4185} 4186``` 4187 4188### mouseDoubleClick<sup>11+</sup> 4189 4190mouseDoubleClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void> 4191 4192在指定坐标点注入鼠标双击动作,支持同时按下对应键盘组合键,使用Promise异步回调。例如,Key值为2072时,按下Ctrl并进行鼠标双击动作。 4193 4194**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4195 4196**系统能力**:SystemCapability.Test.UiTest 4197 4198**参数:** 4199 4200| 参数名 | 类型 | 必填 | 说明 | 4201| ------ | ----------------------------- | ---- | ------------------------------ | 4202| p | [Point](#point9) | 是 | 鼠标双击的坐标。 | 4203| btnId | [MouseButton](#mousebutton10) | 是 | 按下的鼠标按钮。 | 4204| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值0。 | 4205| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值0。 | 4206 4207**返回值:** 4208 4209| 类型 | 说明 | 4210|----------------|-----------------| 4211| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4212 4213**错误码:** 4214 4215以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4216 4217| 错误码ID | 错误信息 | 4218| -------- | ------------------------------------------------------------ | 4219| 17000002 | The async function is not called with await. | 4220| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4221 4222**示例:** 4223 4224```ts 4225import { Driver,MouseButton } from '@kit.TestKit'; 4226async function demo() { 4227 let driver: Driver = Driver.create(); 4228 await driver.mouseDoubleClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072); 4229} 4230``` 4231 4232### mouseLongClick<sup>11+</sup> 4233 4234mouseLongClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void> 4235 4236在指定坐标点注入鼠标长按动作,支持同时按下对应键盘组合键,使用Promise异步回调。例如,Key值为2072时,按下Ctrl并进行鼠标长按动作。 4237 4238**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4239 4240**系统能力**:SystemCapability.Test.UiTest 4241 4242**参数:** 4243 4244| 参数名 | 类型 | 必填 | 说明 | 4245| ------ | ----------------------------- | ---- | ------------------------------ | 4246| p | [Point](#point9) | 是 | 鼠标长按的坐标。 | 4247| btnId | [MouseButton](#mousebutton10) | 是 | 按下的鼠标按钮。 | 4248| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4249| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4250 4251**返回值:** 4252 4253| 类型 | 说明 | 4254|----------------|-----------------| 4255| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4256 4257**错误码:** 4258 4259以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4260 4261| 错误码ID | 错误信息 | 4262| -------- | ------------------------------------------------------------ | 4263| 17000002 | The async function is not called with await. | 4264| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4265 4266**示例:** 4267 4268```ts 4269import { Driver,MouseButton } from '@kit.TestKit'; 4270async function demo() { 4271 let driver:Driver = Driver.create(); 4272 await driver.mouseLongClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072); 4273} 4274``` 4275 4276### mouseLongClick<sup>20+</sup> 4277 4278mouseLongClick(p: Point, btnId: MouseButton, key1?: number, key2?: number, duration?: number): Promise\<void> 4279 4280在指定坐标点注入鼠标长按动作,支持同时按下对应键盘组合键,支持指定长按时长,使用Promise异步回调。例如,Key值为2072时,按下Ctrl并进行鼠标长按动作。 4281 4282**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 4283 4284**系统能力**:SystemCapability.Test.UiTest 4285 4286**参数:** 4287 4288| 参数名 | 类型 | 必填 | 说明 | 4289| -------- | ----------------------------- | ---- | ------------------------------ | 4290| p | [Point](#point9) | 是 | 鼠标长按的坐标。 | 4291| btnId | [MouseButton](#mousebutton10) | 是 | 按下的鼠标按钮。 | 4292| key1 | number | 否 | 指定的第一个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4293| key2 | number | 否 | 指定的第二个key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode),默认值为0。 | 4294| duration | number | 否 | 长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | 4295 4296**返回值:** 4297 4298| 类型 | 说明 | 4299|----------------|-----------------| 4300| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4301 4302**错误码:** 4303 4304以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4305 4306| 错误码ID | 错误信息 | 4307| -------- | ------------------------------------------------------------ | 4308| 17000002 | The async function is not called with await. | 4309| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4310 4311**示例:** 4312 4313```ts 4314import { Driver,MouseButton } from '@kit.TestKit'; 4315 4316async function demo() { 4317 let driver:Driver = Driver.create(); 4318 await driver.mouseLongClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072, 0, 2000); 4319} 4320``` 4321 4322### mouseMoveWithTrack<sup>11+</sup> 4323 4324mouseMoveWithTrack(from: Point, to: Point, speed?: number): Promise\<void> 4325 4326鼠标从起始坐标点滑向终点坐标点,使用Promise异步回调。 4327 4328**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4329 4330**系统能力**:SystemCapability.Test.UiTest 4331 4332**参数:** 4333 4334| 参数名 | 类型 | 必填 | 说明 | 4335| ------ | ---------------- | ---- |--------------------------------------------------------| 4336| from | [Point](#point9) | 是 | 起始点坐标。 | 4337| to | [Point](#point9) | 是 | 终点坐标。 | 4338| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 4339 4340**返回值:** 4341 4342| 类型 | 说明 | 4343|----------------|-----------------| 4344| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4345 4346**错误码:** 4347 4348以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4349 4350| 错误码ID | 错误信息 | 4351| -------- | ------------------------------------------------------------ | 4352| 17000002 | The async function is not called with await. | 4353| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4354 4355**示例:** 4356 4357```ts 4358import { Driver } from '@kit.TestKit'; 4359 4360async function demo() { 4361 let driver: Driver = Driver.create(); 4362 await driver.mouseMoveWithTrack({x:100, y:100}, {x:200, y:200}, 600); 4363} 4364``` 4365 4366### mouseDrag<sup>11+</sup> 4367 4368mouseDrag(from: Point, to: Point, speed?: number): Promise\<void> 4369 4370鼠标按住鼠标左键从起始坐标点拖拽至终点坐标点,使用Promise异步回调。 4371 4372**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4373 4374**系统能力**:SystemCapability.Test.UiTest 4375 4376**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 4377 4378**参数:** 4379 4380| 参数名 | 类型 | 必填 | 说明 | 4381| ------ | ---------------- | ---- |--------------------------------------------------------| 4382| from | [Point](#point9) | 是 | 起始点坐标。 | 4383| to | [Point](#point9) | 是 | 终点坐标。 | 4384| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 4385 4386**返回值:** 4387 4388| 类型 | 说明 | 4389|----------------|-----------------| 4390| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4391 4392**错误码:** 4393 4394以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4395 4396| 错误码ID | 错误信息 | 4397| -------- | ------------------------------------------------------------ | 4398| 17000002 | The async function is not called with await. | 4399| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4400 4401**示例:** 4402 4403```ts 4404import { Driver } from '@kit.TestKit'; 4405 4406async function demo() { 4407 let driver: Driver = Driver.create(); 4408 await driver.mouseDrag({x:100, y:100},{x:200, y:200}, 600); 4409} 4410``` 4411 4412### mouseDrag<sup>20+</sup> 4413 4414mouseDrag(from: Point, to: Point, speed?: number, duration?: number): Promise\<void> 4415 4416鼠标按住鼠标左键从起始坐标点拖拽至终点坐标点,支持指定拖拽速度和拖拽前长按时间,使用Promise异步回调。 4417 4418**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 4419 4420**系统能力**:SystemCapability.Test.UiTest 4421 4422**设备行为差异**:该接口在Phone、Tablet、PC/2in1、TV设备上生效,在其他设备中调用无效果。 4423 4424**参数:** 4425 4426| 参数名 | 类型 | 必填 | 说明 | 4427| --------- | ---------------- | ---- |--------------------------------------------------------| 4428| from | [Point](#point9) | 是 | 起始点坐标。 | 4429| to | [Point](#point9) | 是 | 终点坐标。 | 4430| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 4431| duration | number | 否 | 拖拽前长按持续的时间,取值范围为大于等于1500的整数,默认值为1500,单位:ms。 | 4432 4433**返回值:** 4434 4435| 类型 | 说明 | 4436|----------------|-----------------| 4437| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4438 4439**错误码:** 4440 4441以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4442 4443| 错误码ID | 错误信息 | 4444| -------- | ------------------------------------------------------------ | 4445| 17000002 | The async function is not called with await. | 4446| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4447 4448**示例:** 4449 4450```ts 4451import { Driver } from '@kit.TestKit'; 4452 4453async function demo() { 4454 let driver: Driver = Driver.create(); 4455 await driver.mouseDrag({x:100, y:100},{x:200, y:200}, 600, 2000); 4456} 4457``` 4458 4459### inputText<sup>11+</sup> 4460 4461inputText(p: Point, text: string): Promise\<void> 4462 4463在指定坐标点输入文本,不清空组件内原有文本,直接在坐标处追加输入,使用Promise异步回调。 4464 4465**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4466 4467**系统能力**:SystemCapability.Test.UiTest 4468 4469**参数:** 4470 4471| 参数名 | 类型 | 必填 | 说明 | 4472| ------ | ---------------- | ---- | ------------------ | 4473| p | [Point](#point9) | 是 | 输入文本的坐标点。 | 4474| text | string | 是 |输入的文本信息,当前支持英文、中文和特殊字符。| 4475 4476**返回值:** 4477 4478| 类型 | 说明 | 4479|----------------|-----------------| 4480| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4481 4482**错误码:** 4483 4484以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4485 4486| 错误码ID | 错误信息 | 4487| -------- | ------------------------------------------------------------ | 4488| 17000002 | The async function is not called with await. | 4489| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4490 4491**示例:** 4492 4493```ts 4494import { Component, Driver, ON } from '@kit.TestKit'; 4495async function demo() { 4496 let driver:Driver = Driver.create(); 4497 let text: Component = await driver.findComponent(ON.type('TextInput')); 4498 let point = await text.getBoundsCenter(); 4499 await driver.inputText(point, '123'); 4500} 4501``` 4502 4503### inputText<sup>20+</sup> 4504 4505inputText(p: Point, text: string, mode: InputTextMode): Promise\<void> 4506 4507在指定坐标点输入文本,支持指定文本输入方式,使用Promise异步回调。 4508 4509**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 4510 4511**系统能力**:SystemCapability.Test.UiTest 4512 4513**参数:** 4514 4515| 参数名 | 类型 | 必填 | 说明 | 4516| ------ | ---------------- | ---- | ------------------ | 4517| p | [Point](#point9) | 是 | 输入文本的坐标点。 | 4518| text | string | 是 |输入的文本信息,当前支持英文、中文和特殊字符。 | 4519| mode | [InputTextMode](#inputtextmode20) | 是 | 输入文本的方式,取值请参考[InputTextMode](#inputtextmode20)。 <br> **说明:** <br> InputTextMode.addition取值为ture时,将光标移动至文本末尾后输入指定文本。取值为false时,将在坐标点位置输入指定文本。 | 4520 4521**返回值:** 4522 4523| 类型 | 说明 | 4524|----------------|-----------------| 4525| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4526 4527**错误码:** 4528 4529以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4530 4531| 错误码ID | 错误信息 | 4532| -------- | ------------------------------------------------------------ | 4533| 17000002 | The async function is not called with await. | 4534| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4535| 801 | Capability not support, function can not work correctly due to limited device capabilities.| 4536 4537**示例:** 4538 4539```ts 4540import { Component, Driver, ON } from '@kit.TestKit'; 4541 4542async function demo() { 4543 let driver: Driver = Driver.create(); 4544 let text: Component = await driver.findComponent(ON.type('TextInput')); 4545 let point = await text.getBoundsCenter(); 4546 await driver.inputText(point, '123', {paste: true, addition: false}); 4547} 4548 4549async function demo_Chinese() { 4550 let driver: Driver = Driver.create(); 4551 let text: Component = await driver.findComponent(ON.type('TextInput')); 4552 let point = await text.getBoundsCenter(); 4553 await driver.inputText(point, '中文&', { paste: false, addition: true }); 4554 // 以复制粘贴方式输入中文、特殊符号, 指定文本追加到指定坐标所在文本段的末尾。 4555} 4556``` 4557 4558### touchPadMultiFingerSwipe<sup>18+</sup> 4559 4560touchPadMultiFingerSwipe(fingers: number, direction: UiDirection, options?: TouchPadSwipeOptions): Promise\<void> 4561 4562模拟触摸板多指滑动手势,使用Promise异步回调。 4563 4564**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4565 4566**系统能力**:SystemCapability.Test.UiTest 4567 4568**设备行为差异**:该接口在PC/2in1设备中可正常调用,在其他设备中返回17000005错误码。 4569 4570**参数:** 4571 4572| 参数名 | 类型 | 必填 | 说明 | 4573| ------ |-----------------------------------------------|----|-----------------------| 4574| fingers | number | 是 | 触摸板多指滑动的手指数。取值为3或者4。 | 4575| direction | [UiDirection](#uidirection10) | 是 | 触摸板多指滑动的方向。 | 4576| options | [TouchPadSwipeOptions](#touchpadswipeoptions18) | 否 | 触摸板多指滑动手势附加选项。 | 4577 4578**返回值:** 4579 4580| 类型 | 说明 | 4581|----------------|-----------------| 4582| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4583 4584**错误码:** 4585 4586以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4587 4588| 错误码ID | 错误信息 | 4589| -------- | ------------------------------------------------------------ | 4590| 17000002 | The async function is not called with await. | 4591| 17000005 | This operation is not supported. | 4592| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4593 4594**示例:** 4595 4596```ts 4597import { Driver, UiDirection } from '@kit.TestKit'; 4598async function demo() { 4599 let driver:Driver = Driver.create(); 4600 await driver.touchPadMultiFingerSwipe(3, UiDirection.UP); 4601} 4602``` 4603 4604### penClick<sup>18+</sup> 4605 4606penClick(point: Point): Promise\<void> 4607 4608模拟手写笔点击操作,使用Promise异步回调。 4609 4610**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4611 4612**系统能力**:SystemCapability.Test.UiTest 4613 4614**参数:** 4615 4616| 参数名 | 类型 | 必填 | 说明 | 4617| ------ |-----------------------------------------------|----|---------| 4618| point | [Point](#point9) | 是 | 点击的坐标点。 | 4619 4620**返回值:** 4621 4622| 类型 | 说明 | 4623|----------------|-----------------| 4624| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4625 4626**错误码:** 4627 4628以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4629 4630| 错误码ID | 错误信息 | 4631| -------- | ------------------------------------------------------------ | 4632| 17000002 | The async function is not called with await. | 4633| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4634 4635**示例:** 4636 4637```ts 4638import { Driver } from '@kit.TestKit'; 4639async function demo() { 4640 let driver: Driver = Driver.create(); 4641 await driver.penClick({x: 100, y: 100}); 4642} 4643``` 4644 4645### penLongClick<sup>18+</sup> 4646 4647penLongClick(point: Point, pressure?: number): Promise\<void> 4648 4649模拟手写笔长按操作,使用Promise异步回调。 4650 4651**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4652 4653**系统能力**:SystemCapability.Test.UiTest 4654 4655**参数:** 4656 4657| 参数名 | 类型 | 必填 | 说明 | 4658| ------ |-----------------------------------------------|----|-------------------------------| 4659| point | [Point](#point9) | 是 | 长按的坐标点。 | 4660| pressure | number | 否 | 手写笔滑动操作的压力,默认为1.0,取值范围为0.0到1.0。 | 4661 4662**返回值:** 4663 4664| 类型 | 说明 | 4665|----------------|-----------------| 4666| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4667 4668**错误码:** 4669 4670以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4671 4672| 错误码ID | 错误信息 | 4673| -------- | ------------------------------------------------------------ | 4674| 17000002 | The async function is not called with await. | 4675| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4676 4677**示例:** 4678 4679```ts 4680import { Driver } from '@kit.TestKit'; 4681async function demo() { 4682 let driver: Driver = Driver.create(); 4683 await driver.penLongClick({x: 100, y: 100}, 0.5); 4684} 4685``` 4686 4687### penDoubleClick<sup>18+</sup> 4688 4689penDoubleClick(point: Point): Promise\<void> 4690 4691模拟手写笔双击操作,使用Promise异步回调。 4692 4693**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4694 4695**系统能力**:SystemCapability.Test.UiTest 4696 4697**参数:** 4698 4699| 参数名 | 类型 | 必填 | 说明 | 4700| ------ |-----------------------------------------------|----|---------| 4701| point | [Point](#point9) | 是 | 双击的坐标点。 | 4702 4703 4704**返回值:** 4705 4706| 类型 | 说明 | 4707|----------------|-----------------| 4708| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4709 4710**错误码:** 4711 4712以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4713 4714| 错误码ID | 错误信息 | 4715| -------- | ------------------------------------------------------------ | 4716| 17000002 | The async function is not called with await. | 4717| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4718 4719**示例:** 4720 4721```ts 4722import { Driver } from '@kit.TestKit'; 4723async function demo() { 4724 let driver: Driver = Driver.create(); 4725 await driver.penDoubleClick({x: 100, y: 100}); 4726} 4727``` 4728 4729### penSwipe<sup>18+</sup> 4730 4731penSwipe(startPoint: Point, endPoint: Point, speed?: number, pressure?: number): Promise\<void> 4732 4733模拟手写笔的滑动操作,使用Promise异步回调。 4734 4735**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4736 4737**系统能力**:SystemCapability.Test.UiTest 4738 4739**参数:** 4740 4741| 参数名 | 类型 | 必填 | 说明 | 4742| ------ |-----------------------------------------------|----|--------------------------------------------------------| 4743| startPoint | [Point](#point9) | 是 | 起始位置的坐标点。 | 4744| endPoint | [Point](#point9) | 是 | 结束位置的坐标点。 | 4745| speed | number | 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 4746| pressure | number | 否 | 手写笔滑动操作的压力,默认为1.0,取值范围为0.0到1.0。 | 4747 4748**返回值:** 4749 4750| 类型 | 说明 | 4751|----------------|-----------------| 4752| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4753 4754**错误码:** 4755 4756以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4757 4758| 错误码ID | 错误信息 | 4759| -------- | ------------------------------------------------------------ | 4760| 17000002 | The async function is not called with await. | 4761| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4762 4763**示例:** 4764 4765```ts 4766 import { Driver } from '@kit.TestKit'; 4767async function demo() { 4768 let driver: Driver = Driver.create(); 4769 await driver.penSwipe({x: 100, y: 100}, {x: 100, y: 500}, 600, 0.5); 4770} 4771``` 4772 4773### injectPenPointerAction<sup>18+</sup> 4774 4775injectPenPointerAction(pointers: PointerMatrix, speed?: number, pressure?: number): Promise\<void> 4776 4777模拟手写笔多点连续注入操作,使用Promise异步回调。 4778 4779**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 4780 4781**系统能力**:SystemCapability.Test.UiTest 4782 4783**参数:** 4784 4785| 参数名 | 类型 | 必填 | 说明 | 4786| ------ |-----------------------------------------------|----|-------------------------------------------------------------------| 4787| pointers | [PointerMatrix](#pointermatrix9) | 是 |滑动轨迹,包括操作手指个数和滑动坐标序列。当前仅支持单指操作,PointerMatrix中的操作手指个数fingers必须设置为1。 | 4788| speed | number| 否 | 滑动速率,取值范围为200-40000的整数,默认值为600,不在范围内设为默认值为600,单位:px/s。 | 4789| pressure | number | 否 | 手写笔多点连续注入的压力,默认为1.0,取值范围为0.0到1.0。 | 4790 4791 4792**返回值:** 4793 4794| 类型 | 说明 | 4795|----------------|-----------------| 4796| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 4797 4798**错误码:** 4799 4800以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4801 4802| 错误码ID | 错误信息 | 4803| -------- | ------------------------------------------------------------ | 4804| 17000002 | The async function is not called with await. | 4805| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4806 4807**示例:** 4808 4809```ts 4810import { Driver, PointerMatrix } from '@kit.TestKit'; 4811async function demo() { 4812 let driver: Driver = Driver.create(); 4813 let pointer = PointerMatrix.create(1, 8); 4814 for (let step = 0; step < 8; step++) { 4815 pointer.setPoint(0, step, {x: 500, y: 1100 - 100 *step}); 4816 } 4817 await driver.injectPenPointerAction(pointer, 600, 0.5); 4818} 4819``` 4820 4821### crownRotate<sup>20+</sup> 4822 4823crownRotate(d: number, speed?: number): Promise\<void> 4824 4825注入手表表冠旋转事件,可指定旋转速度,使用Promise异步回调。 4826 4827**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 4828 4829**系统能力**:SystemCapability.Test.UiTest 4830 4831**设备行为差异**:该接口在Wearable设备中可正常调用,在其他设备中返回801错误码。 4832 4833**参数:** 4834 4835| 参数名 | 类型 | 必填 | 说明 | 4836| ------ |-----------------------------------------------|----|-------------------------------------------------------------------| 4837| d | number | 是 | 手表表冠旋转的格数,正值表示顺时针旋转,负值表示逆时针旋转,取值需为整数。 | 4838| speed | number | 否 | 手表表冠旋转的速度,取值范围:1-500的整数,默认值为20,单位:格/秒。<br> **说明:** 参数取值超出合法范围时,设为默认值20。 | 4839 4840**返回值:** 4841 4842| 类型 | 说明 | 4843|----------------|-----------------| 4844| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4845 4846**错误码:** 4847 4848以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 4849 4850| 错误码ID | 错误信息 | 4851| -------- | ------------------------------------------------------------ | 4852| 17000002 | The async function is not called with await. | 4853| 17000007 | Parameter verification failed. | 4854| 801 | Capability not support, function can not work correctly due to limited device capabilities. | 4855 4856**示例:** 4857 4858```ts 4859import { Driver } from '@kit.TestKit'; 4860 4861async function demo() { 4862 let driver: Driver = Driver.create(); 4863 // 顺时针旋转50格,旋转速度为30格/秒 4864 await driver.crownRotate(50, 30); 4865 // 逆时针旋转20格,旋转速度为30格/秒 4866 await driver.crownRotate(-20, 30); 4867} 4868``` 4869 4870## PointerMatrix<sup>9+</sup> 4871 4872存储多指操作中每根手指每一步动作的坐标点及其行为的二维数组。 4873 4874### create<sup>9+</sup> 4875 4876static create(fingers: number, steps: number): PointerMatrix 4877 4878静态方法,构造一个PointerMatrix对象,并返回该对象。 4879 4880**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4881 4882**系统能力**:SystemCapability.Test.UiTest 4883 4884**参数:** 4885 4886| 参数名 | 类型 | 必填 | 说明 | 4887| ------- | ------ | ---- | ------------------------------------------ | 4888| fingers | number | 是 | 多指操作中注入的手指数,取值范围:[1,10]的整数。 | 4889| steps | number | 是 | 每根手指操作的步骤数,取值范围:[1,1000]的整数。 | 4890 4891**返回值:** 4892 4893| 类型 | 说明 | 4894| -------------------------------- | ----------------------------- | 4895| [PointerMatrix](#pointermatrix9) | 返回构造的PointerMatrix对象。 | 4896 4897**错误码:** 4898 4899以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 4900 4901| 错误码ID | 错误信息 | 4902| -------- | ------------------------------------------------------------ | 4903| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4904 4905**示例:** 4906 4907```ts 4908import { PointerMatrix } from '@kit.TestKit'; 4909 4910async function demo() { 4911 let pointerMatrix: PointerMatrix = PointerMatrix.create(2, 3); 4912} 4913``` 4914 4915### setPoint<sup>9+</sup> 4916 4917setPoint(finger: number, step: number, point: Point): void 4918 4919设置PointerMatrix对象中指定手指和步骤对应动作的坐标点。 4920 4921**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4922 4923**系统能力**:SystemCapability.Test.UiTest 4924 4925**参数:** 4926 4927| 参数名 | 类型 | 必填 | 说明 | 4928| ------ | ---------------- | ---- | ---------------------------------------------------------- | 4929| finger | number | 是 | 手指的序号,取值大于等于0的整数,且不超过构造PointerMatrix对象时设置的手指数。 | 4930| step | number | 是 | 步骤的序号,取值大于等于0的整数,且不超过构造PointerMatrix对象时设置的操作的步骤数。 | 4931| point | [Point](#point9) | 是 | 该行为的坐标点。建议相邻的坐标点距离在10px至80px范围内。 | 4932 4933**错误码:** 4934 4935以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 4936 4937| 错误码ID | 错误信息 | 4938| -------- | ------------------------------------------------------------ | 4939| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 4940 4941**示例:** 4942 4943```ts 4944import { PointerMatrix } from '@kit.TestKit'; 4945 4946async function demo() { 4947 let pointers: PointerMatrix = PointerMatrix.create(2, 5); 4948 pointers.setPoint(0, 0, {x:250, y:480}); 4949 pointers.setPoint(0, 1, {x:250, y:440}); 4950 pointers.setPoint(0, 2, {x:250, y:400}); 4951 pointers.setPoint(0, 3, {x:250, y:360}); 4952 pointers.setPoint(0, 4, {x:250, y:320}); 4953 pointers.setPoint(1, 0, {x:250, y:480}); 4954 pointers.setPoint(1, 1, {x:250, y:440}); 4955 pointers.setPoint(1, 2, {x:250, y:400}); 4956 pointers.setPoint(1, 3, {x:250, y:360}); 4957 pointers.setPoint(1, 4, {x:250, y:320}); 4958} 4959``` 4960 4961## UiWindow<sup>9+</sup> 4962 4963UiWindow代表了UI界面上的一个窗口,提供窗口属性获取,窗口拖动、调整窗口大小等能力。 4964该类提供的所有方法都使用Promise方式作为异步方法,需使用await方式调用。 4965 4966### getBundleName<sup>9+</sup> 4967 4968getBundleName(): Promise\<string> 4969 4970获取窗口归属应用的包名信息,使用Promise异步回调。 4971 4972**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4973 4974**系统能力**:SystemCapability.Test.UiTest 4975 4976**返回值:** 4977 4978| 类型 | 说明 | 4979| ---------------- | ----------------------------------------- | 4980| Promise\<string> | Promise对象,返回窗口归属应用的包名信息。 | 4981 4982**错误码:** 4983 4984以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 4985 4986| 错误码ID | 错误信息 | 4987| -------- | ---------------------------------------- | 4988| 17000002 | The async function is not called with await. | 4989| 17000004 | The window or component is invisible or destroyed. | 4990 4991**示例:** 4992 4993```ts 4994import { Driver, UiWindow } from '@kit.TestKit'; 4995 4996async function demo() { 4997 let driver: Driver = Driver.create(); 4998 let window: UiWindow = await driver.findWindow({actived: true}); 4999 let name: string = await window.getBundleName(); 5000} 5001``` 5002 5003### getBounds<sup>9+</sup> 5004 5005getBounds(): Promise\<Rect> 5006 5007获取窗口的边框信息,使用Promise异步回调。 5008 5009**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5010 5011**系统能力**:SystemCapability.Test.UiTest 5012 5013**返回值:** 5014 5015| 类型 | 说明 | 5016| ------------------------ | --------------------------------- | 5017| Promise\<[Rect](#rect9)> | Promise对象,返回窗口的边框信息。 | 5018 5019**错误码:** 5020 5021以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5022 5023| 错误码ID | 错误信息 | 5024| -------- | ---------------------------------------- | 5025| 17000002 | The async function is not called with await. | 5026| 17000004 | The window or component is invisible or destroyed. | 5027 5028**示例:** 5029 5030```ts 5031import { Driver, UiWindow } from '@kit.TestKit'; 5032async function demo() { 5033 let driver: Driver = Driver.create(); 5034 let window: UiWindow = await driver.findWindow({actived: true}); 5035 let rect = await window.getBounds(); 5036} 5037``` 5038 5039### getTitle<sup>9+</sup> 5040 5041getTitle(): Promise\<string> 5042 5043获取窗口的标题信息,使用Promise异步回调。 5044 5045**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5046 5047**系统能力**:SystemCapability.Test.UiTest 5048 5049**返回值:** 5050 5051| 类型 | 说明 | 5052| ---------------- | --------------------------------- | 5053| Promise\<string> | Promise对象,返回窗口的标题信息。 | 5054 5055**错误码:** 5056 5057以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5058 5059| 错误码ID | 错误信息 | 5060| -------- | ---------------------------------------- | 5061| 17000002 | The async function is not called with await. | 5062| 17000004 | The window or component is invisible or destroyed. | 5063 5064**示例:** 5065 5066```ts 5067import { Driver, UiWindow } from '@kit.TestKit'; 5068async function demo() { 5069 let driver: Driver = Driver.create(); 5070 let window: UiWindow = await driver.findWindow({actived: true}); 5071 let title = await window.getTitle(); 5072} 5073``` 5074 5075### getWindowMode<sup>9+</sup> 5076 5077getWindowMode(): Promise\<WindowMode> 5078 5079获取窗口的窗口模式信息,使用Promise异步回调。 5080 5081**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5082 5083**系统能力**:SystemCapability.Test.UiTest 5084 5085**返回值:** 5086 5087| 类型 | 说明 | 5088| ------------------------------------ | ------------------------------------- | 5089| Promise\<[WindowMode](#windowmode9)> | Promise对象,返回窗口的窗口模式信息。 | 5090 5091**错误码:** 5092 5093以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5094 5095| 错误码ID | 错误信息 | 5096| -------- | ---------------------------------------- | 5097| 17000002 | The async function is not called with await. | 5098| 17000004 | The window or component is invisible or destroyed. | 5099 5100**示例:** 5101 5102```ts 5103import { Driver, UiWindow } from '@kit.TestKit'; 5104async function demo() { 5105 let driver: Driver = Driver.create(); 5106 let window: UiWindow = await driver.findWindow({actived: true}); 5107 let mode = await window.getWindowMode(); 5108} 5109``` 5110 5111### isFocused<sup>9+</sup> 5112 5113isFocused(): Promise\<boolean> 5114 5115判断窗口是否处于获焦状态,使用Promise异步回调。 5116 5117**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5118 5119**系统能力**:SystemCapability.Test.UiTest 5120 5121**返回值:** 5122 5123| 类型 | 说明 | 5124| ----------------- | ------------------------------------------------------------ | 5125| Promise\<boolean> | Promise对象,返回窗口对象是否获取获焦状态。true:获焦。false:未获焦。 | 5126 5127**错误码:** 5128 5129以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5130 5131| 错误码ID | 错误信息 | 5132| -------- | ---------------------------------------- | 5133| 17000002 | The async function is not called with await. | 5134| 17000004 | The window or component is invisible or destroyed. | 5135 5136**示例:** 5137 5138```ts 5139import { Driver, UiWindow } from '@kit.TestKit'; 5140async function demo() { 5141 let driver: Driver = Driver.create(); 5142 let window: UiWindow = await driver.findWindow({actived: true}); 5143 let focused = await window.isFocused(); 5144} 5145``` 5146 5147### isActived<sup>(deprecated)</sup> 5148 5149isActived(): Promise\<boolean> 5150 5151判断窗口是否为用户正在交互窗口,使用Promise异步回调。 5152 5153从API version 9开始支持,从API version 11开始废弃,建议使用[isActive<sup>11+</sup>](#isactive11)替代。 5154 5155**系统能力**:SystemCapability.Test.UiTest 5156 5157**返回值:** 5158 5159| 类型 | 说明 | 5160| ----------------- | ------------------------------------------------------------ | 5161| Promise\<boolean> | Promise对象,返回窗口对象是否为用户正在交互窗口。true表示是交互窗口。false表示非交互窗口。 | 5162 5163**错误码:** 5164 5165以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5166 5167| 错误码ID | 错误信息 | 5168| -------- | ---------------------------------------- | 5169| 17000002 | The async function is not called with await. | 5170| 17000004 | The window or component is invisible or destroyed. | 5171 5172**示例:** 5173 5174```ts 5175import { Driver, UiWindow } from '@kit.TestKit'; 5176async function demo() { 5177 let driver: Driver = Driver.create(); 5178 let window: UiWindow = await driver.findWindow({actived: true}); 5179 let focused = await window.isActived(); 5180} 5181``` 5182 5183### focus<sup>9+</sup> 5184 5185focus(): Promise\<void> 5186 5187让窗口获焦,使用Promise异步回调。 5188 5189**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5190 5191**系统能力**:SystemCapability.Test.UiTest 5192 5193**返回值:** 5194 5195| 类型 | 说明 | 5196|----------------|-----------------| 5197| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5198 5199**错误码:** 5200 5201以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5202 5203| 错误码ID | 错误信息 | 5204| -------- | ---------------------------------------- | 5205| 17000002 | The async function is not called with await. | 5206| 17000004 | The window or component is invisible or destroyed. | 5207 5208**示例:** 5209 5210```ts 5211import { Driver, UiWindow } from '@kit.TestKit'; 5212async function demo() { 5213 let driver: Driver = Driver.create(); 5214 let window: UiWindow = await driver.findWindow({actived: true}); 5215 await window.focus(); 5216} 5217``` 5218 5219### moveTo<sup>9+</sup> 5220 5221moveTo(x: number, y: number): Promise\<void> 5222 5223将窗口移动到目标点,使用Promise异步回调。适用于支持移动的窗口。 5224 5225**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5226 5227**系统能力**:SystemCapability.Test.UiTest 5228 5229**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5230 5231**参数:** 5232 5233| 参数名 | 类型 | 必填 | 说明 | 5234| ------ | ------ | ---- | ----------------------------------------------- | 5235| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 5236| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 5237 5238**返回值:** 5239 5240| 类型 | 说明 | 5241|----------------|-----------------| 5242| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5243 5244**错误码:** 5245 5246以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 5247 5248| 错误码ID | 错误信息 | 5249| -------- | ---------------------------------------- | 5250| 17000002 | The async function is not called with await. | 5251| 17000004 | The window or component is invisible or destroyed. | 5252| 17000005 | This operation is not supported. | 5253| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 5254 5255**示例:** 5256 5257```ts 5258import { Driver, UiWindow } from '@kit.TestKit'; 5259async function demo() { 5260 let driver: Driver = Driver.create(); 5261 let window: UiWindow = await driver.findWindow({actived: true}); 5262 await window.moveTo(100, 100); 5263} 5264``` 5265 5266### resize<sup>9+</sup> 5267 5268resize(wide: number, height: number, direction: ResizeDirection): Promise\<void> 5269 5270根据传入的宽、高和调整方向来调整窗口的大小,使用Promise异步回调。适用于支持调整大小的窗口。 5271 5272**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5273 5274**系统能力**:SystemCapability.Test.UiTest 5275 5276**参数:** 5277 5278| 参数名 | 类型 | 必填 | 说明 | 5279| --------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 5280| wide | number | 是 | 以number的形式传入调整后窗口的宽度,取值范围:大于等于0的整数。 | 5281| height | number | 是 | 以number的形式传入调整后窗口的高度,取值范围:大于等于0的整数。 | 5282| direction | [ResizeDirection](#resizedirection9) | 是 | 以[ResizeDirection](#resizedirection9)的形式传入窗口调整的方向。 | 5283 5284**返回值:** 5285 5286| 类型 | 说明 | 5287|----------------|-----------------| 5288| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5289 5290**错误码:** 5291 5292以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[uitest测试框架错误码](errorcode-uitest.md)。 5293 5294| 错误码ID | 错误信息 | 5295| -------- | ---------------------------------------- | 5296| 17000002 | The async function is not called with await. | 5297| 17000004 | The window or component is invisible or destroyed. | 5298| 17000005 | This operation is not supported. | 5299| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 5300 5301**示例:** 5302 5303```ts 5304import { Driver, ResizeDirection, UiWindow } from '@kit.TestKit'; 5305async function demo() { 5306 let driver: Driver = Driver.create(); 5307 let window: UiWindow = await driver.findWindow({actived: true}); 5308 await window.resize(100, 100, ResizeDirection.LEFT); 5309} 5310``` 5311 5312### split<sup>9+</sup> 5313 5314split(): Promise\<void> 5315 5316将窗口模式切换成分屏模式,使用Promise异步回调。适用于支持切换分屏模式的窗口。 5317 5318**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5319 5320**系统能力**:SystemCapability.Test.UiTest 5321 5322**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5323 5324**返回值:** 5325 5326| 类型 | 说明 | 5327|----------------|-----------------| 5328| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5329 5330**错误码:** 5331 5332以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5333 5334| 错误码ID | 错误信息 | 5335| -------- | ---------------------------------------- | 5336| 17000002 | The async function is not called with await. | 5337| 17000004 | The window or component is invisible or destroyed. | 5338| 17000005 | This operation is not supported. | 5339 5340**示例:** 5341 5342```ts 5343import { Driver, UiWindow } from '@kit.TestKit'; 5344async function demo() { 5345 let driver: Driver = Driver.create(); 5346 let window: UiWindow = await driver.findWindow({actived: true}); 5347 await window.split(); 5348} 5349``` 5350 5351### maximize<sup>9+</sup> 5352 5353maximize(): Promise\<void> 5354 5355将窗口最大化,使用Promise异步回调。适用于支持窗口最大化操作的窗口。 5356 5357**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5358 5359**系统能力**:SystemCapability.Test.UiTest 5360 5361**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5362 5363**返回值:** 5364 5365| 类型 | 说明 | 5366|----------------|-----------------| 5367| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5368 5369**错误码:** 5370 5371以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5372 5373| 错误码ID | 错误信息 | 5374| -------- | ---------------------------------------- | 5375| 17000002 | The async function is not called with await. | 5376| 17000004 | The window or component is invisible or destroyed. | 5377| 17000005 | This operation is not supported. | 5378 5379**示例:** 5380 5381```ts 5382import { Driver, UiWindow } from '@kit.TestKit'; 5383async function demo() { 5384 let driver: Driver = Driver.create(); 5385 let window: UiWindow = await driver.findWindow({actived: true}); 5386 await window.maximize(); 5387} 5388``` 5389 5390### minimize<sup>9+</sup> 5391 5392minimize(): Promise\<void> 5393 5394将窗口最小化,使用Promise异步回调。适用于支持窗口最小化操作的窗口。 5395 5396**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5397 5398**系统能力**:SystemCapability.Test.UiTest 5399 5400**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5401 5402**返回值:** 5403 5404| 类型 | 说明 | 5405|----------------|-----------------| 5406| Promise\<void> | Promise对象,返回无结果的Promise对象。 | 5407 5408**错误码:** 5409 5410以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5411 5412| 错误码ID | 错误信息 | 5413| -------- | ---------------------------------------- | 5414| 17000002 | The async function is not called with await. | 5415| 17000004 | The window or component is invisible or destroyed. | 5416| 17000005 | This operation is not supported. | 5417 5418**示例:** 5419 5420```ts 5421import { Driver, UiWindow } from '@kit.TestKit'; 5422async function demo() { 5423 let driver: Driver = Driver.create(); 5424 let window: UiWindow = await driver.findWindow({actived: true}); 5425 await window.minimize(); 5426} 5427``` 5428 5429### resume<sup>9+</sup> 5430 5431resume(): Promise\<void> 5432 5433将窗口恢复到之前的窗口模式,使用Promise异步回调。 5434 5435**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5436 5437**系统能力**:SystemCapability.Test.UiTest 5438 5439**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5440 5441**返回值:** 5442 5443| 类型 | 说明 | 5444|----------------|-----------------| 5445| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 5446 5447**错误码:** 5448 5449以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5450 5451| 错误码ID | 错误信息 | 5452| -------- | ---------------------------------------- | 5453| 17000002 | The async function is not called with await. | 5454| 17000004 | The window or component is invisible or destroyed. | 5455| 17000005 | This operation is not supported. | 5456 5457**示例:** 5458 5459```ts 5460import { Driver, UiWindow } from '@kit.TestKit'; 5461async function demo() { 5462 let driver: Driver = Driver.create(); 5463 let window: UiWindow = await driver.findWindow({actived: true}); 5464 await window.resume(); 5465} 5466``` 5467 5468### close<sup>9+</sup> 5469 5470close(): Promise\<void> 5471 5472将窗口关闭,使用Promise异步回调。 5473 5474**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5475 5476**系统能力**:SystemCapability.Test.UiTest 5477 5478**设备行为差异**:该接口在PC/2in1、Tablet设备中可正常调用,在其他设备中返回17000005错误码。 5479 5480**返回值:** 5481 5482| 类型 | 说明 | 5483|----------------|-----------------| 5484| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 5485 5486**错误码:** 5487 5488以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5489 5490| 错误码ID | 错误信息 | 5491| -------- | ---------------------------------------- | 5492| 17000002 | The async function is not called with await. | 5493| 17000004 | The window or component is invisible or destroyed. | 5494| 17000005 | This operation is not supported. | 5495 5496**示例:** 5497 5498```ts 5499import { Driver, UiWindow } from '@kit.TestKit'; 5500async function demo() { 5501 let driver:Driver = Driver.create(); 5502 let window: UiWindow = await driver.findWindow({actived: true}); 5503 await window.close(); 5504} 5505``` 5506 5507### isActive<sup>11+</sup> 5508 5509isActive(): Promise\<boolean> 5510 5511判断窗口是否为用户正在交互窗口,使用Promise异步回调。 5512 5513**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5514 5515**系统能力**:SystemCapability.Test.UiTest 5516 5517**返回值:** 5518 5519| 类型 | 说明 | 5520| ----------------- | ------------------------------------------------------------ | 5521| Promise\<boolean> | Promise对象,返回窗口对象是否为用户正在交互窗口。true:交互窗口。false:非交互窗口。 | 5522 5523**错误码:** 5524 5525以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5526 5527| 错误码ID | 错误信息 | 5528| -------- | ------------------------------------------------ | 5529| 17000002 | The async function is not called with await. | 5530| 17000004 | The window or component is invisible or destroyed. | 5531 5532**示例:** 5533 5534```ts 5535import { Driver, UiWindow } from '@kit.TestKit'; 5536async function demo() { 5537 let driver: Driver = Driver.create(); 5538 let window: UiWindow = await driver.findWindow({active: true}); 5539 let focused = await window.isActive(); 5540} 5541``` 5542 5543### getDisplayId<sup>20+</sup> 5544 5545getDisplayId(): Promise\<number> 5546 5547获取窗口所属的屏幕ID,使用Promise异步回调。 5548 5549**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 5550 5551**系统能力**:SystemCapability.Test.UiTest 5552 5553**返回值:** 5554 5555| 类型 | 说明 | 5556| ---------------- |----------------------| 5557| Promise\<number> | Promise对象,返回窗口所属的屏幕ID。 | 5558 5559**错误码:** 5560 5561以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 5562 5563| 错误码ID | 错误信息 | 5564| -------- | ---------------------------------------- | 5565| 17000002 | The async function is not called with await. | 5566| 17000004 | The window or component is invisible or destroyed. | 5567 5568**示例:** 5569 5570```ts 5571import { UiWindow, Driver } from '@kit.TestKit'; 5572 5573async function demo() { 5574 let driver: Driver = Driver.create(); 5575 let window: UiWindow = await driver.findWindow({active: true}); 5576 let id = await window.getDisplayId(); 5577} 5578``` 5579 5580## UIEventObserver<sup>10+</sup> 5581 5582UI事件监听器。 5583 5584### once('toastShow')<sup>10+</sup> 5585 5586once(type: 'toastShow', callback: Callback\<UIElementInfo>): void; 5587 5588开始监听toast控件出现的事件,使用callback的形式返回结果。 5589 5590**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5591 5592**系统能力**:SystemCapability.Test.UiTest 5593 5594**参数:** 5595 5596| 参数名 | 类型 | 必填 | 说明 | 5597| -------- | -------------------------------------------- | ---- | --------------------------------- | 5598| type | string | 是 | 订阅的事件类型,取值为'toastShow'。 | 5599| callback | Callback\<[UIElementInfo](#uielementinfo10)> | 是 | 事件发生时执行的回调函数。 | 5600 5601**错误码:** 5602 5603以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 5604 5605| 错误码ID | 错误信息 | 5606| -------- | ------------------------------------------------------------ | 5607| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 5608 5609**示例:** 5610 5611```ts 5612import { Driver, UIElementInfo, UIEventObserver } from '@kit.TestKit'; 5613 5614async function demo() { 5615 let driver: Driver = Driver.create(); 5616 let observer: UIEventObserver = await driver.createUIEventObserver(); 5617 let callback = (UIElementInfo: UIElementInfo)=>{ 5618 console.info(UIElementInfo.bundleName); 5619 console.info(UIElementInfo.text); 5620 console.info(UIElementInfo.type); 5621 } 5622 observer.once('toastShow', callback); 5623} 5624``` 5625 5626### once('dialogShow')<sup>10+</sup> 5627 5628once(type: 'dialogShow', callback: Callback\<UIElementInfo>): void; 5629 5630开始监听dialog控件出现的事件,使用callback的形式返回结果。 5631 5632**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5633 5634**系统能力**:SystemCapability.Test.UiTest 5635 5636**参数:** 5637 5638| 参数名 | 类型 | 必填 | 说明 | 5639| -------- | -------------------------------------------- | ---- | ---------------------------------- | 5640| type | string | 是 | 订阅的事件类型,取值为'dialogShow'。 | 5641| callback | Callback\<[UIElementInfo](#uielementinfo10)> | 是 | 事件发生时执行的回调函数。 | 5642 5643**错误码:** 5644 5645以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 5646 5647| 错误码ID | 错误信息 | 5648| -------- | ------------------------------------------------------------ | 5649| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 5650 5651**示例:** 5652 5653```ts 5654import { Driver, UIElementInfo, UIEventObserver } from '@kit.TestKit'; 5655 5656async function demo() { 5657 let driver: Driver = Driver.create(); 5658 let observer: UIEventObserver = await driver.createUIEventObserver(); 5659 let callback = (UIElementInfo: UIElementInfo)=>{ 5660 console.info(UIElementInfo.bundleName); 5661 console.info(UIElementInfo.text); 5662 console.info(UIElementInfo.type); 5663 } 5664 observer.once('dialogShow', callback); 5665} 5666``` 5667 5668## By<sup>(deprecated)</sup> 5669 5670UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br> 5671By提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[By.isBefore<sup>(deprecated)</sup>](#isbeforedeprecated)和[By.isAfter<sup>(deprecated)</sup>](#isafterdeprecated)等API限定邻近控件特征进行辅助定位。<br>By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。 5672 5673从API version 9开始不再维护,建议使用[On<sup>9+</sup>](#on9)。 5674 5675```ts 5676import { BY } from '@kit.TestKit'; 5677BY.text('123').type('Button'); 5678``` 5679 5680### text<sup>(deprecated)</sup> 5681 5682text(txt: string, pattern?: MatchPattern): By 5683 5684指定目标控件文本属性,支持多种匹配模式,返回By对象自身。 5685 5686从API version 9开始不再维护,建议使用[text<sup>9+</sup>](#text9)。 5687 5688**系统能力**:SystemCapability.Test.UiTest 5689 5690**参数:** 5691 5692| 参数名 | 类型 | 必填 | 说明 | 5693| ------- | ----------------------------- | ---- | --------------------------------------------------- | 5694| txt | string | 是 | 指定控件文本,用于匹配目标控件文本。 | 5695| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 5696 5697**返回值:** 5698 5699| 类型 | 说明 | 5700| ------------------- | ---------------------------------- | 5701| [By](#bydeprecated) | 返回指定目标控件文本属性的By对象。 | 5702 5703**示例:** 5704 5705```ts 5706import { BY, By } from '@kit.TestKit'; 5707let by: By = BY.text('123'); // 使用静态构造器BY创建by对象,指定目标控件的text属性。 5708``` 5709 5710 5711### key<sup>(deprecated)</sup> 5712 5713key(key: string): By 5714 5715指定目标控件key值属性,返回By对象自身。 5716 5717从API version 9开始不再维护,建议使用[id<sup>9+</sup>](#id9)。 5718 5719**系统能力**:SystemCapability.Test.UiTest 5720 5721**参数:** 5722 5723| 参数名 | 类型 | 必填 | 说明 | 5724| ------ | ------ | ---- | ----------------- | 5725| key | string | 是 | 指定控件的Key值。 | 5726 5727**返回值:** 5728 5729| 类型 | 说明 | 5730| ------------------- | ----------------------------------- | 5731| [By](#bydeprecated) | 返回指定目标控件key值属性的By对象。 | 5732 5733**示例:** 5734 5735```ts 5736import { By, BY } from '@kit.TestKit'; 5737let by: By = BY.key('123'); // 使用静态构造器BY创建by对象,指定目标控件的key值属性。 5738``` 5739 5740 5741### id<sup>(deprecated)</sup> 5742 5743id(id: number): By 5744 5745指定目标控件id属性,返回By对象自身。 5746 5747从API version 9开始废弃。 5748 5749**系统能力**:SystemCapability.Test.UiTest 5750 5751**参数:** 5752 5753| 参数名 | 类型 | 必填 | 说明 | 5754| ------ | ------ | ---- | ---------------- | 5755| id | number | 是 | 指定控件的id值。 | 5756 5757**返回值:** 5758 5759| 类型 | 说明 | 5760| ------------------- | -------------------------------- | 5761| [By](#bydeprecated) | 返回指定目标控件id属性的By对象。 | 5762 5763**示例:** 5764 5765```ts 5766import { By, BY } from '@kit.TestKit'; 5767let by: By = BY.id(123); // 使用静态构造器BY创建by对象,指定目标控件的id属性。 5768``` 5769 5770 5771### type<sup>(deprecated)</sup> 5772 5773type(tp: string): By 5774 5775指定目标控件的控件类型属性,返回By对象自身。 5776 5777从API version 9开始不再维护,建议使用[type<sup>9+</sup>](#type9)。 5778 5779**系统能力**:SystemCapability.Test.UiTest 5780 5781**参数:** 5782 5783| 参数名 | 类型 | 必填 | 说明 | 5784| ------ | ------ | ---- | -------------- | 5785| tp | string | 是 | 指定控件类型。 | 5786 5787**返回值:** 5788 5789| 类型 | 说明 | 5790| ------------------- | ---------------------------------------- | 5791| [By](#bydeprecated) | 返回指定目标控件的控件类型属性的By对象。 | 5792 5793**示例:** 5794 5795```ts 5796import { By, BY } from '@kit.TestKit'; 5797let by: By = BY.type('Button'); // 使用静态构造器BY创建by对象,指定目标控件的控件类型属性。 5798``` 5799 5800 5801### clickable<sup>(deprecated)</sup> 5802 5803clickable(b?: boolean): By 5804 5805指定目标控件的可点击状态属性,返回By对象自身。 5806 5807从API version 9开始不再维护,建议使用[clickable<sup>9+</sup>](#clickable9)。 5808 5809**系统能力**:SystemCapability.Test.UiTest 5810 5811**参数:** 5812 5813| 参数名 | 类型 | 必填 | 说明 | 5814| ------ | ------- | ---- | ------------------------------------------------------------ | 5815| b | boolean | 否 | 指定控件可点击状态。true:可点击。false:不可点击。默认为true。 | 5816 5817**返回值:** 5818 5819| 类型 | 说明 | 5820| ------------------- | ------------------------------------------ | 5821| [By](#bydeprecated) | 返回指定目标控件的可点击状态属性的By对象。 | 5822 5823**示例:** 5824 5825```ts 5826import { By, BY } from '@kit.TestKit'; 5827let by: By = BY.clickable(true); // 使用静态构造器BY创建by对象,指定目标控件的可点击状态属性。 5828``` 5829 5830 5831### scrollable<sup>(deprecated)</sup> 5832 5833scrollable(b?: boolean): By 5834 5835指定目标控件的可滑动状态属性,返回By对象自身。 5836 5837从API version 9开始不再维护,建议使用[scrollable<sup>9+</sup>](#scrollable9)。 5838 5839**系统能力**:SystemCapability.Test.UiTest 5840 5841**参数:** 5842 5843| 参数名 | 类型 | 必填 | 说明 | 5844| ------ | ------- | ---- | ----------------------------------------------------------- | 5845| b | boolean | 否 | 控件可滑动状态。true:可滑动。false:不可滑动。默认为true。 | 5846 5847**返回值:** 5848 5849| 类型 | 说明 | 5850| ------------------- | ------------------------------------------ | 5851| [By](#bydeprecated) | 返回指定目标控件的可滑动状态属性的By对象。 | 5852 5853**示例:** 5854 5855```ts 5856import { By, BY } from '@kit.TestKit'; 5857let by: By = BY.scrollable(true); // 使用静态构造器BY创建by对象,指定目标控件的可滑动状态属性。 5858``` 5859 5860### enabled<sup>(deprecated)</sup> 5861 5862enabled(b?: boolean): By 5863 5864指定目标控件的使能状态属性,返回By对象自身。 5865 5866从API version 9开始不再维护,建议使用[enabled<sup>9+</sup>](#enabled9)。 5867 5868**系统能力**:SystemCapability.Test.UiTest 5869 5870**参数:** 5871 5872| 参数名 | 类型 | 必填 | 说明 | 5873| ------ | ------- | ---- | --------------------------------------------------------- | 5874| b | boolean | 否 | 指定控件使能状态。true:使能。false:未使能。默认为true。 | 5875 5876**返回值:** 5877 5878| 类型 | 说明 | 5879| ------------------- | ---------------------------------------- | 5880| [By](#bydeprecated) | 返回指定目标控件的使能状态属性的By对象。 | 5881 5882**示例:** 5883 5884```ts 5885import { By, BY } from '@kit.TestKit'; 5886let by: By = BY.enabled(true); // 使用静态构造器BY创建by对象,指定目标控件的使能状态属性。 5887``` 5888 5889### focused<sup>(deprecated)</sup> 5890 5891focused(b?: boolean): By 5892 5893指定目标控件的获焦状态属性,返回By对象自身。 5894 5895从API version 9开始不再维护,建议使用[focused<sup>9+</sup>](#focused9)。 5896 5897**系统能力**:SystemCapability.Test.UiTest 5898 5899**参数:** 5900 5901| 参数名 | 类型 | 必填 | 说明 | 5902| ------ | ------- | ---- | ----------------------------------------------------- | 5903| b | boolean | 否 | 控件获焦状态。true:获焦。false:未获焦。默认为true。 | 5904 5905**返回值:** 5906 5907| 类型 | 说明 | 5908| ------------------- | ---------------------------------------- | 5909| [By](#bydeprecated) | 返回指定目标控件的获焦状态属性的By对象。 | 5910 5911**示例:** 5912 5913```ts 5914import { By, BY } from '@kit.TestKit'; 5915let by: By = BY.focused(true); // 使用静态构造器BY创建by对象,指定目标控件的获焦状态属性。 5916``` 5917 5918### selected<sup>(deprecated)</sup> 5919 5920selected(b?: boolean): By 5921 5922指定目标控件的被选中状态属性,返回By对象自身。 5923 5924从API version 9开始不再维护,建议使用[selected<sup>9+</sup>](#selected9)。 5925 5926**系统能力**:SystemCapability.Test.UiTest 5927 5928**参数:** 5929 5930| 参数名 | 类型 | 必填 | 说明 | 5931| ------ | ------- | ---- | ------------------------------------------------------------ | 5932| b | boolean | 否 | 指定控件被选中状态。true:被选中。false:未被选中。默认为true。 | 5933 5934**返回值:** 5935 5936| 类型 | 说明 | 5937| ------------------- | ------------------------------------------ | 5938| [By](#bydeprecated) | 返回指定目标控件的被选中状态属性的By对象。 | 5939 5940**示例:** 5941 5942```ts 5943import { By, BY } from '@kit.TestKit'; 5944let by: By = BY.selected(true); // 使用静态构造器BY创建by对象,指定目标控件的被选中状态属性。 5945``` 5946 5947### isBefore<sup>(deprecated)</sup> 5948 5949isBefore(by: By): By 5950 5951指定目标控件位于给出的特征属性控件之前,返回By对象自身。 5952 5953从API version 9开始不再维护,建议使用[isBefore<sup>9+</sup>](#isbefore9)。 5954 5955**系统能力**:SystemCapability.Test.UiTest 5956 5957**参数:** 5958 5959| 参数名 | 类型 | 必填 | 说明 | 5960| ------ | ------------------- | ---- | ---------------- | 5961| by | [By](#bydeprecated) | 是 | 特征控件的属性。 | 5962 5963**返回值:** 5964 5965| 类型 | 说明 | 5966| ------------------- | ---------------------------------------------------- | 5967| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之前的By对象。 | 5968 5969**示例:** 5970 5971```ts 5972import { By, BY } from '@kit.TestKit'; 5973 5974// 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之前。 5975let by: By = BY.type('Button').isBefore(BY.text('123')); // 查找text为123之前的第一个Button组件 5976``` 5977 5978### isAfter<sup>(deprecated)</sup> 5979 5980isAfter(by: By): By 5981 5982指定目标控件位于给出的特征属性控件之后,返回By对象自身。 5983 5984从API version 9开始不再维护,建议使用[isAfter<sup>9+</sup>](#isafter9)。 5985 5986**系统能力**:SystemCapability.Test.UiTest 5987 5988**参数:** 5989 5990| 参数名 | 类型 | 必填 | 说明 | 5991| ------ | ------------------- | ---- | ---------------- | 5992| by | [By](#bydeprecated) | 是 | 特征控件的属性。 | 5993 5994**返回值:** 5995 5996| 类型 | 说明 | 5997| ------------------- | ---------------------------------------------------- | 5998| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之后的By对象。 | 5999 6000**示例:** 6001 6002```ts 6003import { By, BY } from '@kit.TestKit'; 6004 6005// 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之后。 6006let by: By = BY.type('Text').isAfter(BY.text('123')); // 查找 text为123之后的第一个Text组件 6007``` 6008 6009## UiComponent<sup>(deprecated)</sup> 6010 6011UiTest中,UiComponent类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。 6012该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。 6013 6014从API version 9开始不再维护,建议使用[Component<sup>9+</sup>](#component9)。 6015 6016### click<sup>(deprecated)</sup> 6017 6018click(): Promise\<void> 6019 6020控件对象进行点击操作。 6021 6022从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。 6023 6024**系统能力**:SystemCapability.Test.UiTest 6025 6026**返回值:** 6027 6028| 类型 | 说明 | 6029|----------------|-----------------| 6030| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6031 6032**示例:** 6033 6034```ts 6035import { UiDriver, BY, Driver, UiComponent } from '@kit.TestKit'; 6036async function demo() { 6037 let driver: UiDriver = UiDriver.create(); 6038 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6039 await button.click(); 6040} 6041``` 6042 6043### doubleClick<sup>(deprecated)</sup> 6044 6045doubleClick(): Promise\<void> 6046 6047控件对象进行双击操作。 6048 6049从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。 6050 6051**系统能力**:SystemCapability.Test.UiTest 6052 6053**返回值:** 6054 6055| 类型 | 说明 | 6056|----------------|-----------------| 6057| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6058 6059**示例:** 6060 6061```ts 6062import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6063async function demo() { 6064 let driver: UiDriver = UiDriver.create(); 6065 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6066 await button.doubleClick(); 6067} 6068``` 6069 6070### longClick<sup>(deprecated)</sup> 6071 6072longClick(): Promise\<void> 6073 6074控件对象进行长按操作。 6075 6076从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。 6077 6078**系统能力**:SystemCapability.Test.UiTest 6079 6080**返回值:** 6081 6082| 类型 | 说明 | 6083|----------------|-----------------| 6084| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6085 6086**示例:** 6087 6088```ts 6089import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6090async function demo() { 6091 let driver: UiDriver = UiDriver.create(); 6092 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6093 await button.longClick(); 6094} 6095``` 6096 6097### getId<sup>(deprecated)</sup> 6098 6099getId(): Promise\<number> 6100 6101获取控件对象的id值。 6102 6103从API version 9开始不再维护,被废弃。 6104 6105**系统能力**:SystemCapability.Test.UiTest 6106 6107**返回值:** 6108 6109| 类型 | 说明 | 6110| ---------------- | ------------------------------- | 6111| Promise\<number> | Promise对象,返回控件的id值。 | 6112 6113**示例:** 6114 6115```ts 6116import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6117async function demo() { 6118 let driver: UiDriver = UiDriver.create(); 6119 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6120 let id = await button.getId(); 6121} 6122``` 6123 6124### getKey<sup>(deprecated)</sup> 6125 6126getKey(): Promise\<string> 6127 6128获取控件对象的key值。 6129 6130从API version 9开始不再维护,建议使用[getId<sup>9+</sup>](#getid9) 6131 6132**系统能力**:SystemCapability.Test.UiTest 6133 6134**返回值:** 6135 6136| 类型 | 说明 | 6137| ---------------- | ------------------------------ | 6138| Promise\<string> | Promise对象,返回控件的key值。 | 6139 6140**示例:** 6141 6142```ts 6143import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6144async function demo() { 6145 let driver: UiDriver = UiDriver.create(); 6146 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6147 let str_key = await button.getKey(); 6148} 6149``` 6150 6151### getText<sup>(deprecated)</sup> 6152 6153getText(): Promise\<string> 6154 6155获取控件对象的文本信息。 6156 6157从API version 9开始不再维护,建议使用[getText<sup>9+</sup>](#gettext9)。 6158 6159**系统能力**:SystemCapability.Test.UiTest 6160 6161**返回值:** 6162 6163| 类型 | 说明 | 6164| ---------------- | --------------------------------- | 6165| Promise\<string> | Promise对象,返回控件的文本信息。 | 6166 6167**示例:** 6168 6169```ts 6170import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6171async function demo() { 6172 let driver: UiDriver = UiDriver.create(); 6173 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6174 let text = await button.getText(); 6175} 6176``` 6177 6178### getType<sup>(deprecated)</sup> 6179 6180getType(): Promise\<string> 6181 6182获取控件对象的控件类型。 6183 6184从API version 9开始不再维护,建议使用[getType<sup>9+</sup>](#gettype9)。 6185 6186**系统能力**:SystemCapability.Test.UiTest 6187 6188**返回值:** 6189 6190| 类型 | 说明 | 6191| ---------------- | ----------------------------- | 6192| Promise\<string> | Promise对象,返回控件的类型。 | 6193 6194**示例:** 6195 6196```ts 6197import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6198async function demo() { 6199 let driver: UiDriver = UiDriver.create(); 6200 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6201 let type = await button.getType(); 6202} 6203``` 6204 6205### isClickable<sup>(deprecated)</sup> 6206 6207isClickable(): Promise\<boolean> 6208 6209获取控件对象可点击状态。 6210 6211从API version 9开始不再维护,建议使用[isClickable<sup>9+</sup>](#isclickable9)。 6212 6213**系统能力**:SystemCapability.Test.UiTest 6214 6215**返回值:** 6216 6217| 类型 | 说明 | 6218| ----------------- | ------------------------------------------------------------ | 6219| Promise\<boolean> | Promise对象,返回控件对象可点击状态。true:可点击。false:不可点击。 | 6220 6221**示例:** 6222 6223```ts 6224import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6225async function demo() { 6226 let driver: UiDriver = UiDriver.create(); 6227 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6228 if (await button.isClickable()) { 6229 console.info('This button can be Clicked'); 6230 } else { 6231 console.info('This button can not be Clicked'); 6232 } 6233} 6234``` 6235 6236### isScrollable<sup>(deprecated)</sup> 6237 6238isScrollable(): Promise\<boolean> 6239 6240获取控件对象可滑动状态。 6241 6242从API version 9开始不再维护,建议使用[isScrollable<sup>9+</sup>](#isscrollable9)。 6243 6244**系统能力**:SystemCapability.Test.UiTest 6245 6246**返回值:** 6247 6248| 类型 | 说明 | 6249| ----------------- | ------------------------------------------------------------ | 6250| Promise\<boolean> | Promise对象,返回控件对象可滑动状态。true:可滑动。false:不可滑动。 | 6251 6252**示例:** 6253 6254```ts 6255import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6256async function demo() { 6257 let driver: UiDriver = UiDriver.create(); 6258 let scrollBar: UiComponent = await driver.findComponent(BY.scrollable(true)); 6259 if (await scrollBar.isScrollable()) { 6260 console.info('This scrollBar can be operated'); 6261 } else { 6262 console.info('This scrollBar can not be operated'); 6263 } 6264} 6265``` 6266 6267 6268### isEnabled<sup>(deprecated)</sup> 6269 6270isEnabled(): Promise\<boolean> 6271 6272获取控件使能状态。 6273 6274从API version 9开始不再维护,建议使用[isEnabled<sup>9+</sup>](#isenabled9)。 6275 6276**系统能力**:SystemCapability.Test.UiTest 6277 6278**返回值:** 6279 6280| 类型 | 说明 | 6281| ----------------- | ---------------------------------------------------------- | 6282| Promise\<boolean> | Promise对象,返回控件使能状态。true:使能。false:未使能。 | 6283 6284**示例:** 6285 6286```ts 6287import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6288async function demo() { 6289 let driver: UiDriver = UiDriver.create(); 6290 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6291 if (await button.isEnabled()) { 6292 console.info('This button can be operated'); 6293 } else { 6294 console.info('This button can not be operated'); 6295 } 6296} 6297 6298``` 6299 6300### isFocused<sup>(deprecated)</sup> 6301 6302isFocused(): Promise\<boolean> 6303 6304判断控件对象是否获焦。 6305 6306从API version 9开始不再维护,建议使用[isFocused<sup>9+</sup>](#isfocused9)。 6307 6308**系统能力**:SystemCapability.Test.UiTest 6309 6310**返回值:** 6311 6312| 类型 | 说明 | 6313| ----------------- | ------------------------------------------------------------ | 6314| Promise\<boolean> | Promise对象,返回控件对象是否获焦。true:获焦。false:未获焦。 | 6315 6316**示例:** 6317 6318```ts 6319import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6320async function demo() { 6321 let driver: UiDriver = UiDriver.create(); 6322 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6323 if (await button.isFocused()) { 6324 console.info('This button is focused'); 6325 } else { 6326 console.info('This button is not focused'); 6327 } 6328} 6329``` 6330 6331### isSelected<sup>(deprecated)</sup> 6332 6333isSelected(): Promise\<boolean> 6334 6335获取控件对象被选中状态。 6336 6337从API version 9开始不再维护,建议使用[isSelected<sup>9+</sup>](#isselected9)。 6338 6339**系统能力**:SystemCapability.Test.UiTest 6340 6341**返回值:** 6342 6343| 类型 | 说明 | 6344| ----------------- | ----------------------------------------------------- | 6345| Promise\<boolean> | Promise对象,返回控件对象被选中的状态。true:被选中。false:未被选中。 | 6346 6347**示例:** 6348 6349```ts 6350import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6351async function demo() { 6352 let driver: UiDriver = UiDriver.create(); 6353 let button: UiComponent = await driver.findComponent(BY.type('Button')); 6354 if (await button.isSelected()) { 6355 console.info('This button is selected'); 6356 } else { 6357 console.info('This button is not selected'); 6358 } 6359} 6360``` 6361 6362### inputText<sup>(deprecated)</sup> 6363 6364inputText(text: string): Promise\<void> 6365 6366向控件中输入文本,仅针对可编辑的文本组件生效。 6367 6368从API version 9开始不再维护,建议使用[inputText<sup>9+</sup>](#inputtext9)。 6369 6370**系统能力**:SystemCapability.Test.UiTest 6371 6372**参数:** 6373 6374| 参数名 | 类型 | 必填 | 说明 | 6375| ------ | ------ | ---- | ---------------- | 6376| text | string | 是 | 输入的文本信息。 | 6377 6378**返回值:** 6379 6380| 类型 | 说明 | 6381|----------------|-----------------| 6382| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6383 6384**示例:** 6385 6386```ts 6387import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6388async function demo() { 6389 let driver: UiDriver = UiDriver.create(); 6390 let text: UiComponent = await driver.findComponent(BY.text('hello world')); 6391 await text.inputText('123'); 6392} 6393``` 6394 6395### scrollSearch<sup>(deprecated)</sup> 6396 6397scrollSearch(by: By): Promise\<UiComponent> 6398 6399在控件上滑动查找目标控件(适用于List等支持滑动的控件)。 6400 6401从API version 9开始不再维护,建议使用[scrollSearch<sup>9+</sup>](#scrollsearch9)。 6402 6403**系统能力**:SystemCapability.Test.UiTest 6404 6405**参数:** 6406 6407| 参数名 | 类型 | 必填 | 说明 | 6408| ------ | ------------------- | ---- | -------------------- | 6409| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 6410 6411**返回值:** 6412 6413| 类型 | 说明 | 6414| ----------------------------------------------- | ------------------------------------- | 6415| Promise\<[UiComponent](#uicomponentdeprecated)> | Promise对象,返回目标控件对象。 | 6416 6417**示例:** 6418 6419```ts 6420import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6421async function demo() { 6422 let driver: UiDriver = UiDriver.create(); 6423 let scrollBar: UiComponent = await driver.findComponent(BY.type('Scroll')); 6424 let button = await scrollBar.scrollSearch(BY.text('next page')); 6425} 6426``` 6427 6428## UiDriver<sup>(deprecated)</sup> 6429 6430UiDriver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等API。 6431该类提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await调用。 6432 6433从API version 9开始不再维护,建议使用[Driver<sup>9+</sup>](#driver9)。 6434 6435### create<sup>(deprecated)</sup> 6436 6437static create(): UiDriver 6438 6439静态方法,构造一个UiDriver对象,并返回该对象。 6440 6441从API version 9开始不再维护,建议使用[create<sup>9+</sup>](#create9)。 6442 6443**系统能力**:SystemCapability.Test.UiTest 6444 6445**返回值:** 6446 6447| 类型 | 说明 | 6448| -------- | ------------------------ | 6449| UiDriver | 返回构造的UiDriver对象。 | 6450 6451**示例:** 6452 6453```ts 6454import { UiDriver } from '@kit.TestKit'; 6455async function demo() { 6456 let driver: UiDriver = UiDriver.create(); 6457} 6458``` 6459 6460### delayMs<sup>(deprecated)</sup> 6461 6462delayMs(duration: number): Promise\<void> 6463 6464UiDriver对象在给定的时间内延时。 6465 6466从API version 9开始不再维护,建议使用[delayMs<sup>9+</sup>](#delayms9)。 6467 6468**系统能力**:SystemCapability.Test.UiTest 6469 6470**参数:** 6471 6472| 参数名 | 类型 | 必填 | 说明 | 6473| -------- | ------ | ---- | ------------ | 6474| duration | number | 是 | 给定的时间。 | 6475 6476**返回值:** 6477 6478| 类型 | 说明 | 6479|----------------|-----------------| 6480| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6481 6482**示例:** 6483 6484```ts 6485import { UiDriver } from '@kit.TestKit'; 6486async function demo() { 6487 let driver: UiDriver = UiDriver.create(); 6488 await driver.delayMs(1000); 6489} 6490``` 6491 6492### findComponent<sup>(deprecated)</sup> 6493 6494findComponent(by: By): Promise\<UiComponent> 6495 6496在UiDriver对象中,根据给出的目标控件属性要求查找目标控件。 6497 6498从API version 9开始不再维护,建议使用[findComponent<sup>9+</sup>](#findcomponent9)。 6499 6500**系统能力**:SystemCapability.Test.UiTest 6501 6502**参数:** 6503 6504| 参数名 | 类型 | 必填 | 说明 | 6505| ------ | ------------------- | ---- | -------------------- | 6506| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 6507 6508**返回值:** 6509 6510| 类型 | 说明 | 6511| ----------------------------------------------- | --------------------------------- | 6512| Promise\<[UiComponent](#uicomponentdeprecated)> | Promise对象,返回控件对象。 | 6513 6514**示例:** 6515 6516```ts 6517import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6518async function demo() { 6519 let driver: UiDriver = UiDriver.create(); 6520 let button: UiComponent = await driver.findComponent(BY.text('next page')); 6521} 6522``` 6523 6524### findComponents<sup>(deprecated)</sup> 6525 6526findComponents(by: By): Promise\<Array\<UiComponent>> 6527 6528在UiDriver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。 6529 6530从API version 9开始不再维护,建议使用[findComponents<sup>9+</sup>](#findcomponents9)。 6531 6532**系统能力**:SystemCapability.Test.UiTest 6533 6534**参数:** 6535 6536| 参数名 | 类型 | 必填 | 说明 | 6537| ------ | ------------------- | ---- | -------------------- | 6538| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 6539 6540**返回值:** 6541 6542| 类型 | 说明 | 6543| ------------------------------------------------------- | --------------------------------------- | 6544| Promise\<Array\<[UiComponent](#uicomponentdeprecated)>> | Promise对象,返回控件对象的列表。 | 6545 6546**示例:** 6547 6548```ts 6549import { UiDriver, BY, UiComponent } from '@kit.TestKit'; 6550async function demo() { 6551 let driver: UiDriver = UiDriver.create(); 6552 let buttonList: Array<UiComponent> = await driver.findComponents(BY.text('next page')); 6553} 6554``` 6555 6556### assertComponentExist<sup>(deprecated)</sup> 6557 6558assertComponentExist(by: By): Promise\<void> 6559 6560断言API,用于断言当前界面存在满足给出的目标控件属性的控件; 如果控件不存在,该API将抛出JS异常,使当前测试用例失败。 6561 6562从API version 9开始不再维护,建议使用[assertComponentExist<sup>9+</sup>](#assertcomponentexist9)。 6563 6564**系统能力**:SystemCapability.Test.UiTest 6565 6566**参数:** 6567 6568| 参数名 | 类型 | 必填 | 说明 | 6569| ------ | ------------------- | ---- | -------------------- | 6570| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 6571 6572**返回值:** 6573 6574| 类型 | 说明 | 6575|----------------|-----------------| 6576| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6577 6578**错误码:** 6579 6580以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。 6581 6582| 错误码ID | 错误信息 | 6583| -------- | ------------------------------------------------ | 6584| 401 | if the input parameters are invalid. | 6585| 17000002 | if the async function was not called with await. | 6586| 17000003 | if the assertion failed. | 6587 6588**示例:** 6589 6590```ts 6591import { UiDriver, BY } from '@kit.TestKit'; 6592async function demo() { 6593 let driver: UiDriver = UiDriver.create(); 6594 await driver.assertComponentExist(BY.text('next page')); 6595} 6596``` 6597 6598### pressBack<sup>(deprecated)</sup> 6599 6600pressBack(): Promise\<void> 6601 6602UiDriver对象进行点击BACK键的操作。 6603 6604从API version 9开始不再维护,建议使用[pressBack<sup>9+</sup>](#pressback9)。 6605 6606**系统能力**:SystemCapability.Test.UiTest 6607 6608**返回值:** 6609 6610| 类型 | 说明 | 6611|----------------|-----------------| 6612| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6613 6614**示例:** 6615 6616```ts 6617import { UiDriver } from '@kit.TestKit'; 6618async function demo() { 6619 let driver: UiDriver = UiDriver.create(); 6620 await driver.pressBack(); 6621} 6622``` 6623 6624### triggerKey<sup>(deprecated)</sup> 6625 6626triggerKey(keyCode: number): Promise\<void> 6627 6628UiDriver对象采取如下操作:通过key值找到对应键并点击。 6629 6630从API version 9开始不再维护,建议使用[triggerKey<sup>9+</sup>](#triggerkey9)。 6631 6632**系统能力**:SystemCapability.Test.UiTest 6633 6634**参数:** 6635 6636| 参数名 | 类型 | 必填 | 说明 | 6637| ------- | ------ | ---- | ------------- | 6638| keyCode | number | 是 | 指定的key值,取值大于等于0的整数,取值范围:[KeyCode键码值](../apis-input-kit/js-apis-keycode.md#keycode)。 | 6639 6640**返回值:** 6641 6642| 类型 | 说明 | 6643|----------------|-----------------| 6644| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6645 6646**示例:** 6647 6648```ts 6649import { Driver, UiDriver } from '@kit.TestKit'; 6650import { KeyCode } from '@kit.InputKit'; 6651 6652async function demo() { 6653 let driver: UiDriver = UiDriver.create(); 6654 await driver.triggerKey(KeyCode.KEYCODE_BACK); // 返回键 6655} 6656``` 6657 6658 6659### click<sup>(deprecated)</sup> 6660 6661click(x: number, y: number): Promise\<void> 6662 6663UiDriver对象采取如下操作:在目标坐标点单击。 6664 6665从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。 6666 6667**系统能力**:SystemCapability.Test.UiTest 6668 6669**参数:** 6670 6671| 参数名 | 类型 | 必填 | 说明 | 6672| ------ | ------ | ---- | -------------------------------------- | 6673| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 6674| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 6675 6676**返回值:** 6677 6678| 类型 | 说明 | 6679|----------------|-----------------| 6680| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6681 6682**示例:** 6683 6684```ts 6685import { UiDriver } from '@kit.TestKit'; 6686 6687async function demo() { 6688 let driver: UiDriver = UiDriver.create(); 6689 await driver.click(100, 100); 6690} 6691``` 6692 6693### doubleClick<sup>(deprecated)</sup> 6694 6695doubleClick(x: number, y: number): Promise\<void> 6696 6697UiDriver对象采取如下操作:在目标坐标点双击。 6698 6699从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。 6700 6701**系统能力**:SystemCapability.Test.UiTest 6702 6703**参数:** 6704 6705| 参数名 | 类型 | 必填 | 说明 | 6706| ------ | ------ | ---- | -------------------------------------- | 6707| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 6708| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 6709 6710**返回值:** 6711 6712| 类型 | 说明 | 6713|----------------|-----------------| 6714| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6715 6716**示例:** 6717 6718```ts 6719import { UiDriver } from '@kit.TestKit'; 6720 6721async function demo() { 6722 let driver: UiDriver = UiDriver.create(); 6723 await driver.doubleClick(100, 100); 6724} 6725``` 6726 6727### longClick<sup>(deprecated)</sup> 6728 6729longClick(x: number, y: number): Promise\<void> 6730 6731UiDriver对象采取如下操作:在目标坐标点长按下鼠标左键。 6732 6733从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。 6734 6735**系统能力**:SystemCapability.Test.UiTest 6736 6737**参数:** 6738 6739| 参数名 | 类型 | 必填 | 说明 | 6740| ------ | ------ | ---- | -------------------------------------- | 6741| x | number | 是 | 以number的形式传入目标点的横坐标信息,取值范围:大于等于0的整数。 | 6742| y | number | 是 | 以number的形式传入目标点的纵坐标信息,取值范围:大于等于0的整数。 | 6743 6744**返回值:** 6745 6746| 类型 | 说明 | 6747|----------------|-----------------| 6748| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6749 6750**示例:** 6751 6752```ts 6753import { UiDriver } from '@kit.TestKit'; 6754async function demo() { 6755 let driver: UiDriver = UiDriver.create(); 6756 await driver.longClick(100, 100); 6757} 6758``` 6759 6760### swipe<sup>(deprecated)</sup> 6761 6762swipe(startx: number, starty: number, endx: number, endy: number): Promise\<void> 6763 6764UiDriver对象采取如下操作:从给出的起始坐标点滑向给出的目的坐标点。 6765 6766从API version 9开始不再维护,建议使用[swipe<sup>9+</sup>](#swipe9)。 6767 6768**系统能力**:SystemCapability.Test.UiTest 6769 6770**参数:** 6771 6772| 参数名 | 类型 | 必填 | 说明 | 6773| ------ | ------ | ---- | -------------------------------------- | 6774| startx | number | 是 | 以number的形式传入起始点的横坐标信息,取值范围:大于等于0的整数。 | 6775| starty | number | 是 | 以number的形式传入起始点的纵坐标信息,取值范围:大于等于0的整数。 | 6776| endx | number | 是 | 以number的形式传入目的点的横坐标信息,取值范围:大于等于0的整数。 | 6777| endy | number | 是 | 以number的形式传入目的点的纵坐标信息,取值范围:大于等于0的整数。 | 6778 6779**返回值:** 6780 6781| 类型 | 说明 | 6782|----------------|-----------------| 6783| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6784 6785**示例:** 6786 6787```ts 6788import { UiDriver } from '@kit.TestKit'; 6789 6790async function demo() { 6791 let driver: UiDriver = UiDriver.create(); 6792 await driver.swipe(100, 100, 200, 200); 6793} 6794``` 6795 6796### screenCap<sup>(deprecated)</sup> 6797 6798screenCap(savePath: string): Promise\<boolean> 6799 6800UiDriver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。 6801 6802从API version 9开始不再维护,建议使用[screenCap<sup>9+</sup>](#screencap9)。 6803 6804**系统能力**:SystemCapability.Test.UiTest 6805 6806**参数:** 6807 6808| 参数名 | 类型 | 必填 | 说明 | 6809| -------- | ------ | ---- | -------------- | 6810| savePath | string | 是 | 文件保存路径。 | 6811 6812**返回值:** 6813 6814 6815| 类型 | 说明 | 6816| ----------------- |-----------------------------------------------| 6817| Promise\<boolean> | Promise对象,返回截图操作是否成功完成。true:成功完成,false:未成功完成。 | 6818 6819**示例:** 6820 6821```ts 6822import { UiDriver } from '@kit.TestKit'; 6823async function demo() { 6824 let driver: UiDriver = UiDriver.create(); 6825 await driver.screenCap('/data/storage/el2/base/cache/1.png'); 6826} 6827``` 6828