• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.UiTest
2
3UiTest提供模拟UI操作的能力,供开发者在测试场景使用,主要支持如点击、双击、长按、滑动等UI操作能力。
4
5该模块提供以下功能:
6
7- [On<sup>9+</sup>](#on9):提供控件特征描述能力,用于控件筛选匹配查找。
8- [Component<sup>9+</sup>](#component9):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。
9- [Driver<sup>9+</sup>](#driver9):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。
10- [UiWindow<sup>9+</sup>](#uiwindow9):入口类,提供窗口属性获取,窗口拖动、调整窗口大小等能力。
11- [By<sup>(deprecated)</sup>](#bydeprecated):提供控件特征描述能力,用于控件筛选匹配查找。从API version 9开始不再维护,建议使用[On<sup>9+</sup>](#on9)。
12- [UiComponent<sup>(deprecated)</sup>](#uicomponentdeprecated):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。从API version 9开始不再维护,建议使用[Component<sup>9+</sup>](#component9)。
13- [UiDriver<sup>(deprecated)</sup>](#uidriverdeprecated):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。从API version 9开始不再维护,建议使用[Driver<sup>9+</sup>](#driver9)。
14
15> **说明:**
16> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
17> - 本模块接口在<!--RP1-->[自动化测试脚本](../../application-test/arkxtest-guidelines.md)<!--RP1End-->中使用。
18> - 本模块接口不支持并发调用。
19> - 本模块接口适用于手机、平板、2in1设备。
20
21
22## 导入模块
23
24```ts
25import { UiComponent, UiDriver, Component, Driver, UiWindow, ON, BY, MatchPattern, DisplayRotation, ResizeDirection, WindowMode, PointerMatrix, UiDirection, MouseButton, UIElementInfo, UIEventObserver } from '@kit.TestKit';
26```
27
28## MatchPattern
29
30控件属性支持的匹配模式。
31
32**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
33
34**系统能力**:SystemCapability.Test.UiTest
35
36| 名称        | 值   | 说明           |
37| ----------- | ---- | -------------- |
38| EQUALS      | 0    | 等于给定值。   |
39| CONTAINS    | 1    | 包含给定值。   |
40| STARTS_WITH | 2    | 以给定值开始。 |
41| ENDS_WITH   | 3    | 以给定值结束。 |
42
43## ResizeDirection<sup>9+</sup>
44
45窗口调整大小的方向。
46
47**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
48
49**系统能力**:SystemCapability.Test.UiTest
50
51| 名称       | 值   | 说明     |
52| ---------- | ---- | -------- |
53| LEFT       | 0    | 左方。   |
54| RIGHT      | 1    | 右方。   |
55| UP         | 2    | 上方。   |
56| DOWN       | 3    | 下方。   |
57| LEFT_UP    | 4    | 左上方。 |
58| LEFT_DOWN  | 5    | 左下方。 |
59| RIGHT_UP   | 6    | 右上方。 |
60| RIGHT_DOWN | 7    | 右下方。 |
61
62## Point<sup>9+</sup>
63
64坐标点信息。
65
66**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
67
68**系统能力**:SystemCapability.Test.UiTest
69
70| 名称 | 类型   | 可读 | 可写 | 说明             |
71| ---- | ------ | ---- | ---- | ---------------- |
72| x    | number | 是   | 否   | 坐标点的横坐标。 |
73| y    | number | 是   | 否   | 坐标点的纵坐标。 |
74
75## Rect<sup>9+</sup>
76
77控件的边框信息。
78
79**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
80
81**系统能力**:SystemCapability.Test.UiTest
82
83| 名称   | 类型   | 可读 | 可写 | 说明                      |
84| ------ | ------ | ---- | ---- | ------------------------- |
85| left   | number | 是   | 否   | 控件边框的左上角的X坐标。 |
86| top    | number | 是   | 否   | 控件边框的左上角的Y坐标。 |
87| right  | number | 是   | 否   | 控件边框的右下角的X坐标。 |
88| bottom | number | 是   | 否   | 控件边框的右下角的Y坐标。 |
89
90## WindowMode<sup>9+</sup>
91
92窗口的窗口模式。
93
94**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
95
96**系统能力**:SystemCapability.Test.UiTest
97
98| 名称       | 值   | 说明       |
99| ---------- | ---- | ---------- |
100| FULLSCREEN | 0    | 全屏模式。 |
101| PRIMARY    | 1    | 主窗口。   |
102| SECONDARY  | 2    | 第二窗口。 |
103| FLOATING   | 3    | 浮动窗口。 |
104
105## DisplayRotation<sup>9+</sup>
106
107设备显示器的显示方向。
108
109**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
110
111**系统能力**:SystemCapability.Test.UiTest
112
113| 名称         | 值   | 说明                                     |
114| ------------ | ---- | ---------------------------------------- |
115| ROTATION_0   | 0    | 设备显示器不旋转,初始形态垂直显示。     |
116| ROTATION_90  | 1    | 设备显示器顺时针旋转90°,水平显示。      |
117| ROTATION_180 | 2    | 设备显示器顺时针旋转180°,逆向垂直显示。 |
118| ROTATION_270 | 3    | 设备显示器顺时针旋转270°,逆向水平显示。 |
119
120## WindowFilter<sup>9+</sup>
121
122窗口的标志属性信息。
123
124**系统能力**:SystemCapability.Test.UiTest
125
126| 名称                 | 类型    | 可读 | 可写 | 说明                                                         |
127| -------------------- | ------- | ---- | ---- | ------------------------------------------------------------ |
128| bundleName           | string  | 是   | 否   | 窗口归属应用的包名。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
129| title                | string  | 是   | 否   | 窗口的标题信息。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
130| focused              | boolean | 是   | 否   | 窗口是否处于获焦状态。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
131| actived(deprecated)  | boolean | 是   | 否   | 窗口是否正与用户进行交互。<br>从API11开始,名称变更为active。 |
132| active<sup>11+</sup> | boolean | 是   | 否   | 窗口是否正与用户进行交互。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
133
134## UiDirection<sup>10+</sup>
135
136进行抛滑等UI操作时的方向。
137
138**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
139
140**系统能力**:SystemCapability.Test.UiTest
141
142| 名称  | 值   | 说明   |
143| ----- | ---- | ------ |
144| LEFT  | 0    | 向左。 |
145| RIGHT | 1    | 向右。 |
146| UP    | 2    | 向上。 |
147| DOWN  | 3    | 向下。 |
148
149## MouseButton<sup>10+</sup>
150
151模拟注入的鼠标按钮。
152
153**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
154
155**系统能力**:SystemCapability.Test.UiTest
156
157| 名称                | 值   | 说明         |
158| ------------------- | ---- | ------------ |
159| MOUSE_BUTTON_LEFT   | 0    | 鼠标左键。   |
160| MOUSE_BUTTON_RIGHT  | 1    | 鼠标右键。   |
161| MOUSE_BUTTON_MIDDLE | 2    | 鼠标中间键。 |
162
163## UIElementInfo<sup>10+</sup>
164
165UI事件的相关信息。
166
167**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
168
169**系统能力**:SystemCapability.Test.UiTest
170
171| 名称       | 类型   | 可读 | 可写 | 说明                  |
172| ---------- | ------ | ---- | ---- | --------------------- |
173| bundleName | string | 是   | 否   | 归属应用的包名。      |
174| type       | string | 是   | 否   | 控件/窗口类型。       |
175| text       | string | 是   | 否   | 控件/窗口的文本信息。 |
176
177## On<sup>9+</sup>
178
179UiTest框架在API 9中,通过On类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br>
180On提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[ON.isBefore](#isbefore9)和[ON.isAfter](#isafter9)等API限定邻近控件特征进行辅助定位。<br>On类提供的所有API均为同步接口,建议使用者通过静态构造器ON来链式创建On对象。
181
182```ts
183import { ON } from '@kit.TestKit';
184ON.text('123').type('Button');
185```
186
187### text<sup>9+</sup>
188
189text(txt: string, pattern?: MatchPattern): On
190
191指定目标控件文本属性,支持多种匹配模式,返回On对象自身。
192
193**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
194
195**系统能力**:SystemCapability.Test.UiTest
196
197**参数:**
198
199| 参数名  | 类型                          | 必填 | 说明                                                |
200| ------- | ----------------------------- | ---- | --------------------------------------------------- |
201| txt     | string                        | 是   | 指定控件文本,用于匹配目标控件文本。                |
202| pattern | [MatchPattern](#matchpattern) | 否   | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 |
203
204**返回值:**
205
206| 类型       | 说明                               |
207| ---------- | ---------------------------------- |
208| [On](#on9) | 返回指定目标控件文本属性的On对象。 |
209
210**错误码:**
211
212以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
213
214| 错误码ID | 错误信息                                                     |
215| -------- | ------------------------------------------------------------ |
216| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
217
218**示例:**
219
220```ts
221import { On, ON } from '@kit.TestKit';
222let on:On = ON.text('123'); // 使用静态构造器ON创建On对象,指定目标控件的text属性。
223```
224
225### id<sup>9+</sup>
226
227id(id: string): On
228
229指定目标控件id属性,返回On对象自身。
230
231**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
232
233**系统能力**:SystemCapability.Test.UiTest
234
235**参数:**
236
237| 参数名 | 类型   | 必填 | 说明             |
238| ------ | ------ | ---- | ---------------- |
239| id     | string | 是   | 指定控件的id值。 |
240
241**返回值:**
242
243| 类型       | 说明                             |
244| ---------- | -------------------------------- |
245| [On](#on9) | 返回指定目标控件id属性的On对象。 |
246
247**错误码:**
248
249以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
250
251| 错误码ID | 错误信息                                                     |
252| -------- | ------------------------------------------------------------ |
253| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
254
255**示例:**
256
257```ts
258import { On, ON } from '@kit.TestKit';
259let on:On = ON.id('123'); // 使用静态构造器ON创建On对象,指定目标控件的id属性。
260```
261
262
263### type<sup>9+</sup>
264
265type(tp: string): On
266
267指定目标控件的控件类型属性,返回On对象自身。
268
269>**说明**
270>
271>控件类型是开发者自定义的。同时,可以借助[DevEco Testing工具](https://developer.huawei.com/consumer/cn/download)进行查询。
272
273**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
274
275**系统能力**:SystemCapability.Test.UiTest
276
277**参数:**
278
279| 参数名 | 类型   | 必填 | 说明           |
280| ------ | ------ | ---- | -------------- |
281| tp     | string | 是   | 指定控件类型。|
282
283**返回值:**
284
285| 类型       | 说明                                     |
286| ---------- | ---------------------------------------- |
287| [On](#on9) | 返回指定目标控件的控件类型属性的On对象。 |
288
289**错误码:**
290
291以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
292
293| 错误码ID | 错误信息                                                     |
294| -------- | ------------------------------------------------------------ |
295| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
296
297**示例:**
298
299```ts
300import { On, ON } from '@kit.TestKit';
301let on:On = ON.type('Button'); // 使用静态构造器ON创建On对象,指定目标控件的控件类型属性。
302```
303
304
305### clickable<sup>9+</sup>
306
307clickable(b?: boolean): On
308
309指定目标控件的可点击状态属性,返回On对象自身。
310
311**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
312
313**系统能力**:SystemCapability.Test.UiTest
314
315**参数:**
316
317| 参数名 | 类型    | 必填 | 说明                                                         |
318| ------ | ------- | ---- | ------------------------------------------------------------ |
319| b      | boolean | 否   | 指定控件可点击状态,true:可点击,false:不可点击。默认为true。 |
320
321**返回值:**
322
323| 类型       | 说明                                       |
324| ---------- | ------------------------------------------ |
325| [On](#on9) | 返回指定目标控件的可点击状态属性的On对象。 |
326
327**错误码:**
328
329以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
330
331| 错误码ID | 错误信息                                                     |
332| -------- | ------------------------------------------------------------ |
333| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
334
335**示例:**
336
337```ts
338import { On, ON } from '@kit.TestKit';
339let on:On = ON.clickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可点击状态属性。
340```
341
342### longClickable<sup>9+</sup>
343
344longClickable(b?: boolean): On
345
346指定目标控件的可长按点击状态属性,返回On对象自身。
347
348**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
349
350**系统能力**:SystemCapability.Test.UiTest
351
352**参数:**
353
354| 参数名 | 类型    | 必填 | 说明                                                         |
355| ------ | ------- | ---- | ------------------------------------------------------------ |
356| b      | boolean | 否   | 指定控件可长按点击状态,true:可长按点击,false:不可长按点击。默认为true。 |
357
358**返回值:**
359
360| 类型       | 说明                                           |
361| ---------- | ---------------------------------------------- |
362| [On](#on9) | 返回指定目标控件的可长按点击状态属性的On对象。 |
363
364**错误码:**
365
366以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
367
368| 错误码ID | 错误信息                                                     |
369| -------- | ------------------------------------------------------------ |
370| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
371
372**示例:**
373
374```ts
375import { On, ON } from '@kit.TestKit';
376let on:On = ON.longClickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可长按点击状态属性。
377```
378
379
380### scrollable<sup>9+</sup>
381
382scrollable(b?: boolean): On
383
384指定目标控件的可滑动状态属性,返回On对象自身。
385
386**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
387
388**系统能力**:SystemCapability.Test.UiTest
389
390**参数:**
391
392| 参数名 | 类型    | 必填 | 说明                                                        |
393| ------ | ------- | ---- | ----------------------------------------------------------- |
394| b      | boolean | 否   | 控件可滑动状态,true:可滑动,false:不可滑动。默认为true。 |
395
396**返回值:**
397
398| 类型       | 说明                                       |
399| ---------- | ------------------------------------------ |
400| [On](#on9) | 返回指定目标控件的可滑动状态属性的On对象。 |
401
402**错误码:**
403
404以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
405
406| 错误码ID | 错误信息                                                     |
407| -------- | ------------------------------------------------------------ |
408| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
409
410**示例:**
411
412```ts
413import { On, ON } from '@kit.TestKit';
414let on:On = ON.scrollable(true); // 使用静态构造器ON创建On对象,指定目标控件的可滑动状态属性。
415```
416
417### enabled<sup>9+</sup>
418
419enabled(b?: boolean): On
420
421指定目标控件的使能状态属性,返回On对象自身。
422
423**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
424
425**系统能力**:SystemCapability.Test.UiTest
426
427**参数:**
428
429| 参数名 | 类型    | 必填 | 说明                                                      |
430| ------ | ------- | ---- | --------------------------------------------------------- |
431| b      | boolean | 否   | 指定控件使能状态,true:使能,false:未使能。默认为true。 |
432
433**返回值:**
434
435| 类型       | 说明                                     |
436| ---------- | ---------------------------------------- |
437| [On](#on9) | 返回指定目标控件的使能状态属性的On对象。 |
438
439**错误码:**
440
441以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
442
443| 错误码ID | 错误信息                                                     |
444| -------- | ------------------------------------------------------------ |
445| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
446
447**示例:**
448
449```ts
450import { On, ON } from '@kit.TestKit';
451let on:On = ON.enabled(true); // 使用静态构造器ON创建On对象,指定目标控件的使能状态属性。
452```
453
454### focused<sup>9+</sup>
455
456focused(b?: boolean): On
457
458指定目标控件的获焦状态属性,返回On对象自身。
459
460**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
461
462**系统能力**:SystemCapability.Test.UiTest
463
464**参数:**
465
466| 参数名 | 类型    | 必填 | 说明                                                  |
467| ------ | ------- | ---- | ----------------------------------------------------- |
468| b      | boolean | 否   | 控件获焦状态,true:获焦,false:未获焦。默认为true。 |
469
470**返回值:**
471
472| 类型       | 说明                                     |
473| ---------- | ---------------------------------------- |
474| [On](#on9) | 返回指定目标控件的获焦状态属性的On对象。 |
475
476**错误码:**
477
478以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
479
480| 错误码ID | 错误信息                                                     |
481| -------- | ------------------------------------------------------------ |
482| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
483
484**示例:**
485
486```ts
487import { On, ON } from '@kit.TestKit';
488let on:On = ON.focused(true); // 使用静态构造器ON创建On对象,指定目标控件的获焦状态属性。
489```
490
491### selected<sup>9+</sup>
492
493selected(b?: boolean): On
494
495指定目标控件的被选中状态属性,返回On对象自身。
496
497**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
498
499**系统能力**:SystemCapability.Test.UiTest
500
501**参数:**
502
503| 参数名 | 类型    | 必填 | 说明                                                         |
504| ------ | ------- | ---- | ------------------------------------------------------------ |
505| b      | boolean | 否   | 指定控件被选中状态,true:被选中,false:未被选中。默认为true。 |
506
507**返回值:**
508
509| 类型       | 说明                                       |
510| ---------- | ------------------------------------------ |
511| [On](#on9) | 返回指定目标控件的被选中状态属性的On对象。 |
512
513**错误码:**
514
515以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
516
517| 错误码ID | 错误信息                                                     |
518| -------- | ------------------------------------------------------------ |
519| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
520
521**示例:**
522
523```ts
524import { On, ON } from '@kit.TestKit';
525let on:On = ON.selected(true); // 使用静态构造器ON创建On对象,指定目标控件的被选中状态属性。
526```
527
528### checked<sup>9+</sup>
529
530checked(b?: boolean): On
531
532指定目标控件的被勾选状态属性,返回On对象自身。
533
534**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
535
536**系统能力**:SystemCapability.Test.UiTest
537
538**参数:**
539
540| 参数名 | 类型    | 必填 | 说明                                                         |
541| ------ | ------- | ---- | ------------------------------------------------------------ |
542| b      | boolean | 否   | 指定控件被勾选状态,true:被勾选,false:未被勾选。默认为false。 |
543
544**返回值:**
545
546| 类型       | 说明                                       |
547| ---------- | ------------------------------------------ |
548| [On](#on9) | 返回指定目标控件的被勾选状态属性的On对象。 |
549
550**错误码:**
551
552以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
553
554| 错误码ID | 错误信息                                                     |
555| -------- | ------------------------------------------------------------ |
556| 401      | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
557
558**示例:**
559
560```ts
561import { On, ON } from '@kit.TestKit';
562let on:On = ON.checked(true); // 使用静态构造器ON创建On对象,指定目标控件的被勾选状态属性
563```
564
565### checkable<sup>9+</sup>
566
567checkable(b?: boolean): On
568
569指定目标控件能否被勾选状态属性,返回On对象自身。
570
571**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
572
573**系统能力**:SystemCapability.Test.UiTest
574
575**参数:**
576
577| 参数名 | 类型    | 必填 | 说明                                                         |
578| ------ | ------- | ---- | ------------------------------------------------------------ |
579| b      | boolean | 否   | 指定控件能否被勾选状态,true:能被勾选,false:不能被勾选。默认为false。 |
580
581**返回值:**
582
583| 类型       | 说明                                         |
584| ---------- | -------------------------------------------- |
585| [On](#on9) | 返回指定目标控件能否被勾选状态属性的On对象。 |
586
587**错误码:**
588
589以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
590
591| 错误码ID | 错误信息                                                     |
592| -------- | ------------------------------------------------------------ |
593| 401      | Parameter error. 1. Incorrect parameter types; 2. Parameter verification failed. |
594
595**示例:**
596
597```ts
598import { On, ON } from '@kit.TestKit';
599let on:On = ON.checkable(true); // 使用静态构造器ON创建On对象,指定目标控件的能否被勾选状态属性。
600```
601
602### isBefore<sup>9+</sup>
603
604isBefore(on: On): On
605
606指定目标控件位于给出的特征属性控件之前,返回On对象自身。
607
608**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
609
610**系统能力**:SystemCapability.Test.UiTest
611
612**参数:**
613
614| 参数名 | 类型       | 必填 | 说明                 |
615| ------ | ---------- | ---- | -------------------- |
616| on     | [On](#on9) | 是   | 特征控件的属性要求。 |
617
618**返回值:**
619
620| 类型       | 说明                                                 |
621| ---------- | ---------------------------------------------------- |
622| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之前的On对象。 |
623
624**错误码:**
625
626以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
627
628| 错误码ID | 错误信息                                                     |
629| -------- | ------------------------------------------------------------ |
630| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
631
632**示例:**
633
634```ts
635import { On, ON } from '@kit.TestKit';
636
637// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之前。
638let on:On = ON.type('Button').isBefore(ON.text('123'));  // 查找text为123之前的第一个Button组件
639```
640
641### isAfter<sup>9+</sup>
642
643isAfter(on: On): On
644
645指定目标控件位于给出的特征属性控件之后,返回On对象自身。
646
647**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
648
649**系统能力**:SystemCapability.Test.UiTest
650
651**参数:**
652
653| 参数名 | 类型       | 必填 | 说明                 |
654| ------ | ---------- | ---- | -------------------- |
655| on     | [On](#on9) | 是   | 特征控件的属性要求。 |
656
657**返回值:**
658
659| 类型       | 说明                                                 |
660| ---------- | ---------------------------------------------------- |
661| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之后的On对象。 |
662
663**错误码:**
664
665以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
666
667| 错误码ID | 错误信息                                                     |
668| -------- | ------------------------------------------------------------ |
669| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
670
671**示例:**
672
673```ts
674import { On, ON } from '@kit.TestKit';
675
676// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之后。
677let on:On = ON.type('Text').isAfter(ON.text('123'))  // 查找 text为123之后的第一个Text组件
678```
679
680### within<sup>10+</sup>
681
682within(on: On): On
683
684指定目标控件位于给出的特征属性控件之内,返回On对象自身。
685
686**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
687
688**系统能力**:SystemCapability.Test.UiTest
689
690**参数:**
691
692| 参数名 | 类型       | 必填 | 说明                 |
693| ------ | ---------- | ---- | -------------------- |
694| on     | [On](#on9) | 是   | 特征控件的属性要求。 |
695
696**返回值:**
697
698| 类型       | 说明                                               |
699| ---------- | -------------------------------------------------- |
700| [On](#on9) | 返回指定目标控件位于给出的特征属性控件内的On对象。 |
701
702**错误码:**
703
704以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
705
706| 错误码ID | 错误信息                                                     |
707| -------- | ------------------------------------------------------------ |
708| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
709
710**示例:**
711
712```ts
713import { On, ON } from '@kit.TestKit';
714// 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之内。
715let on:On = ON.text('java').within(ON.type('Scroll'));  // 查找Scroller里面的text为java的子组件
716```
717
718### inWindow<sup>10+</sup>
719
720inWindow(bundleName: string): On;
721
722指定目标控件位于给出的应用窗口内,返回On对象自身。
723
724**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
725
726**系统能力**:SystemCapability.Test.UiTest
727
728**参数:**
729
730| 参数名     | 类型   | 必填 | 说明             |
731| ---------- | ------ | ---- | ---------------- |
732| bundleName | string | 是   | 应用窗口的包名。 |
733
734**返回值:**
735
736| 类型       | 说明                                           |
737| ---------- | ---------------------------------------------- |
738| [On](#on9) | 返回指定目标控件位于给出的应用窗口内的On对象。 |
739
740**错误码:**
741
742以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
743
744| 错误码ID | 错误信息                                                     |
745| -------- | ------------------------------------------------------------ |
746| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
747
748**示例:**
749
750```ts
751import { On, ON } from '@kit.TestKit';
752let on:On = ON.inWindow('com.uitestScene.acts'); // 使用静态构造器ON创建On对象,指定目标控件位于给出的应用窗口内。
753```
754
755### description<sup>11+</sup>
756
757description(val: string, pattern?: MatchPattern): On
758
759指定目标控件的描述属性,支持多种匹配模式,返回On对象自身。
760
761**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
762
763**系统能力**:SystemCapability.Test.UiTest
764
765**参数:**
766
767| 参数名  | 类型                          | 必填 | 说明                                                |
768| ------- | ----------------------------- | ---- | --------------------------------------------------- |
769| val     | string                        | 是   | 控件的描述属性。                                    |
770| pattern | [MatchPattern](#matchpattern) | 否   | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 |
771
772**返回值:**
773
774| 类型       | 说明                                      |
775| ---------- | ----------------------------------------- |
776| [On](#on9) | 返回指定目标控件description属性的On对象。 |
777
778**错误码:**
779
780以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
781
782| 错误码ID | 错误信息                                                     |
783| -------- | ------------------------------------------------------------ |
784| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
785
786**示例:**
787
788```ts
789import { On, ON } from '@kit.TestKit';
790let on:On = ON.description('123'); // 使用静态构造器ON创建On对象,指定目标控件的description属性。
791```
792
793## Component<sup>9+</sup>
794
795UiTest框架在API9中,Component类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。
796该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。
797
798### click<sup>9+</sup>
799
800click(): Promise\<void>
801
802控件对象进行点击操作。
803
804**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
805
806**系统能力**:SystemCapability.Test.UiTest
807
808**错误码:**
809
810以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
811
812| 错误码ID | 错误信息                                 |
813| -------- | ---------------------------------------- |
814| 17000002 | The async function is not called with await. |
815| 17000004 | The window or component is invisible or destroyed.           |
816
817**示例:**
818
819```ts
820import { Driver, ON, Component } from '@kit.TestKit';
821async function demo() {
822  let driver:Driver = Driver.create();
823  let button: Component = await driver.findComponent(ON.type('Button'));
824  await button.click();
825}
826```
827
828### doubleClick<sup>9+</sup>
829
830doubleClick(): Promise\<void>
831
832控件对象进行双击操作。
833
834**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
835
836**系统能力**:SystemCapability.Test.UiTest
837
838**错误码:**
839
840以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
841
842| 错误码ID | 错误信息                                 |
843| -------- | ---------------------------------------- |
844| 17000002 | The async function is not called with await. |
845| 17000004 | The window or component is invisible or destroyed.           |
846
847**示例:**
848
849```ts
850import {Component, Driver, ON } from '@kit.TestKit';
851async function demo() {
852  let driver: Driver = Driver.create();
853  let button: Component = await driver.findComponent(ON.type('Button'));
854  await button.doubleClick();
855}
856```
857
858### longClick<sup>9+</sup>
859
860longClick(): Promise\<void>
861
862控件对象进行长按操作。
863
864**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
865
866**系统能力**:SystemCapability.Test.UiTest
867
868**错误码:**
869
870以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
871
872| 错误码ID | 错误信息                                 |
873| -------- | ---------------------------------------- |
874| 17000002 | The async function is not called with await. |
875| 17000004 | The window or component is invisible or destroyed.           |
876
877**示例:**
878
879```ts
880import { Component, Driver, ON } from '@kit.TestKit';
881async function demo() {
882  let driver: Driver = Driver.create();
883  let button: Component = await driver.findComponent(ON.type('Button'));
884  await button.longClick();
885}
886```
887
888### getId<sup>9+</sup>
889
890getId(): Promise\<string>
891
892获取控件对象的id值。
893
894**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
895
896**系统能力**:SystemCapability.Test.UiTest
897
898**返回值:**
899
900| 类型             | 说明                            |
901| ---------------- | ------------------------------- |
902| Promise\<string> | 以Promise形式返回的控件的id值。 |
903
904**错误码:**
905
906以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
907
908| 错误码ID | 错误信息                                 |
909| -------- | ---------------------------------------- |
910| 17000002 | The async function is not called with await. |
911| 17000004 | The window or component is invisible or destroyed.           |
912
913**示例:**
914
915```ts
916import { Component, Driver, ON } from '@kit.TestKit';
917async function demo() {
918  let driver: Driver = Driver.create();
919  let button: Component = await driver.findComponent(ON.type('Button'));
920  let id = await button.getId();
921}
922```
923
924### getText<sup>9+</sup>
925
926getText(): Promise\<string>
927
928获取控件对象的文本信息。
929
930**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
931
932**系统能力**:SystemCapability.Test.UiTest
933
934**返回值:**
935
936| 类型             | 说明                              |
937| ---------------- | --------------------------------- |
938| Promise\<string> | 以Promise形式返回控件的文本信息。 |
939
940**错误码:**
941
942以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
943
944| 错误码ID | 错误信息                               |
945| -------- | ---------------------------------------- |
946| 17000002 | The async function is not called with await. |
947| 17000004 | The window or component is invisible or destroyed.           |
948
949**示例:**
950
951```ts
952import { Component, Driver, ON } from '@kit.TestKit';
953async function demo() {
954  let driver: Driver = Driver.create();
955  let button: Component = await driver.findComponent(ON.type('Button'));
956  let text = await button.getText();
957}
958```
959
960### getType<sup>9+</sup>
961
962getType(): Promise\<string>
963
964获取控件对象的控件类型。
965
966**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
967
968**系统能力**:SystemCapability.Test.UiTest
969
970**返回值:**
971
972| 类型             | 说明                          |
973| ---------------- | ----------------------------- |
974| Promise\<string> | 以Promise形式返回控件的类型。 |
975
976**错误码:**
977
978以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
979
980| 错误码ID | 错误信息                               |
981| -------- | ---------------------------------------- |
982| 17000002 | The async function is not called with await. |
983| 17000004 | The window or component is invisible or destroyed.           |
984
985**示例:**
986
987```ts
988import { Component, Driver, ON } from '@kit.TestKit';
989async function demo() {
990  let driver: Driver = Driver.create();
991  let button: Component = await driver.findComponent(ON.type('Button'));
992  let type = await button.getType();
993}
994```
995
996### getBounds<sup>9+</sup>
997
998getBounds(): Promise\<Rect>
999
1000获取控件对象的边框信息。
1001
1002**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1003
1004**系统能力**:SystemCapability.Test.UiTest
1005
1006**返回值:**
1007
1008| 类型                     | 说明                                  |
1009| ------------------------ | ------------------------------------- |
1010| Promise\<[Rect](#rect9)> | 以Promise形式返回控件对象的边框信息。 |
1011
1012**错误码:**
1013
1014以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1015
1016| 错误码ID | 错误信息                               |
1017| -------- | ---------------------------------------- |
1018| 17000002 | The async function is not called with await. |
1019| 17000004 | The window or component is invisible or destroyed.           |
1020
1021**示例:**
1022
1023```ts
1024import { Component, Driver, ON } from '@kit.TestKit';
1025async function demo() {
1026  let driver: Driver = Driver.create();
1027  let button: Component = await driver.findComponent(ON.type('Button'));
1028  let rect = await button.getBounds();
1029}
1030```
1031
1032### getBoundsCenter<sup>9+</sup>
1033
1034getBoundsCenter(): Promise\<Point>
1035
1036获取控件对象所占区域的中心点信息。
1037
1038**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1039
1040**系统能力**:SystemCapability.Test.UiTest
1041
1042**返回值:**
1043
1044| 类型                       | 说明                                            |
1045| -------------------------- | ----------------------------------------------- |
1046| Promise\<[Point](#point9)> | 以Promise形式返回控件对象所占区域的中心点信息。 |
1047
1048**错误码:**
1049
1050以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1051
1052| 错误码ID | 错误信息                               |
1053| -------- | ---------------------------------------- |
1054| 17000002 | The async function is not called with await. |
1055| 17000004 | The window or component is invisible or destroyed.           |
1056
1057**示例:**
1058
1059```ts
1060import { Component, Driver, ON } from '@kit.TestKit';
1061async function demo() {
1062  let driver: Driver = Driver.create();
1063  let button: Component = await driver.findComponent(ON.type('Button'));
1064  let point = await button.getBoundsCenter();
1065}
1066```
1067
1068### isClickable<sup>9+</sup>
1069
1070isClickable(): Promise\<boolean>
1071
1072获取控件对象可点击属性。
1073
1074**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1075
1076**系统能力**:SystemCapability.Test.UiTest
1077
1078**返回值:**
1079
1080| 类型              | 说明                                                         |
1081| ----------------- | ------------------------------------------------------------ |
1082| Promise\<boolean> | 以Promise形式返回控件对象是否可点击,true:可点击,false:不可点击。 |
1083
1084**错误码:**
1085
1086以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1087
1088| 错误码ID | 错误信息                               |
1089| -------- | ---------------------------------------- |
1090| 17000002 | The async function is not called with await. |
1091| 17000004 | The window or component is invisible or destroyed.           |
1092
1093**示例:**
1094
1095```ts
1096import { Component, Driver, ON } from '@kit.TestKit';
1097async function demo() {
1098  let driver: Driver = Driver.create();
1099  let button: Component = await driver.findComponent(ON.type('Button'));
1100  if(await button.isClickable()) {
1101    console.info('This button can be Clicked');
1102  } else {
1103    console.info('This button can not be Clicked');
1104  }
1105}
1106```
1107
1108### isLongClickable<sup>9+</sup>
1109
1110isLongClickable(): Promise\<boolean>
1111
1112获取控件对象可长按点击属性。
1113
1114**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1115
1116**系统能力**:SystemCapability.Test.UiTest
1117
1118**返回值:**
1119
1120| 类型              | 说明                                               |
1121| ----------------- |--------------------------------------------------|
1122| Promise\<boolean> | 以Promise形式返回控件对象是否可长按点击,true:可长按点击,false:不可长按点击。 |
1123
1124**错误码:**
1125
1126以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1127
1128| 错误码ID | 错误信息                               |
1129| -------- | ---------------------------------------- |
1130| 17000002 | The async function is not called with await. |
1131| 17000004 | The window or component is invisible or destroyed.           |
1132
1133**示例:**
1134
1135```ts
1136import { Component, Driver, ON } from '@kit.TestKit';
1137async function demo() {
1138  let driver: Driver = Driver.create();
1139  let button: Component = await driver.findComponent(ON.type('Button'));
1140  if(await button.isLongClickable()) {
1141    console.info('This button can longClick');
1142  } else {
1143    console.info('This button can not longClick');
1144  }
1145}
1146```
1147
1148### isChecked<sup>9+</sup>
1149
1150isChecked(): Promise\<boolean>
1151
1152获取控件对象被勾选状态。
1153
1154**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1155
1156**系统能力**:SystemCapability.Test.UiTest
1157
1158**返回值:**
1159
1160| 类型              | 说明                                                         |
1161| ----------------- | ------------------------------------------------------------ |
1162| Promise\<boolean> | 以Promise形式返回控件对象被勾选状态,true:被勾选,false:未被勾选。 |
1163
1164**错误码:**
1165
1166以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1167
1168| 错误码ID | 错误信息                               |
1169| -------- | ---------------------------------------- |
1170| 17000002 | The async function is not called with await. |
1171| 17000004 | The window or component is invisible or destroyed.           |
1172
1173**示例:**
1174
1175```ts
1176import { Component, Driver, ON } from '@kit.TestKit';
1177async function demo() {
1178  let driver: Driver = Driver.create();
1179  let checkBox: Component = await driver.findComponent(ON.type('Checkbox'));
1180  if(await checkBox.isChecked()) {
1181    console.info('This checkBox is checked');
1182  } else {
1183    console.info('This checkBox is not checked');
1184  }
1185}
1186```
1187
1188### isCheckable<sup>9+</sup>
1189
1190isCheckable(): Promise\<boolean>
1191
1192获取控件对象能否被勾选属性。
1193
1194**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1195
1196**系统能力**:SystemCapability.Test.UiTest
1197
1198**返回值:**
1199
1200| 类型              | 说明                                                         |
1201| ----------------- | ------------------------------------------------------------ |
1202| Promise\<boolean> | 以Promise形式返回控件对象能否可被勾选属性,true:可被勾选,false:不可被勾选。 |
1203
1204**错误码:**
1205
1206以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1207
1208| 错误码ID | 错误信息                                 |
1209| -------- | ---------------------------------------- |
1210| 17000002 | The async function is not called with await. |
1211| 17000004 | The window or component is invisible or destroyed.           |
1212
1213**示例:**
1214
1215```ts
1216import { Component, Driver, ON } from '@kit.TestKit';
1217async function demo() {
1218  let driver: Driver = Driver.create();
1219  let checkBox: Component = await driver.findComponent(ON.type('Checkbox'));
1220  if(await checkBox.isCheckable()) {
1221    console.info('This checkBox is checkable');
1222  } else {
1223    console.info('This checkBox is not checkable');
1224  }
1225}
1226```
1227
1228### isScrollable<sup>9+</sup>
1229
1230isScrollable(): Promise\<boolean>
1231
1232获取控件对象可滑动属性。
1233
1234**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1235
1236**系统能力**:SystemCapability.Test.UiTest
1237
1238**返回值:**
1239
1240| 类型              | 说明                                                         |
1241| ----------------- | ------------------------------------------------------------ |
1242| Promise\<boolean> | 以Promise形式返回控件对象是否可滑动,true:可滑动,false:不可滑动。 |
1243
1244**错误码:**
1245
1246以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1247
1248| 错误码ID | 错误信息                               |
1249| -------- | ---------------------------------------- |
1250| 17000002 | The async function is not called with await. |
1251| 17000004 | The window or component is invisible or destroyed.           |
1252
1253**示例:**
1254
1255```ts
1256import { Component, Driver, ON } from '@kit.TestKit';
1257async function demo() {
1258  let driver: Driver = Driver.create();
1259  let scrollBar: Component = await driver.findComponent(ON.scrollable(true));
1260  if(await scrollBar.isScrollable()) {
1261    console.info('This scrollBar can be operated');
1262  } else {
1263    console.info('This scrollBar can not be operated');
1264  }
1265}
1266```
1267
1268
1269### isEnabled<sup>9+</sup>
1270
1271isEnabled(): Promise\<boolean>
1272
1273获取控件使能状态。
1274
1275**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1276
1277**系统能力**:SystemCapability.Test.UiTest
1278
1279**返回值:**
1280
1281| 类型              | 说明                                                       |
1282| ----------------- | ---------------------------------------------------------- |
1283| Promise\<boolean> | 以Promise形式返回控件使能状态,true:使能,false:未使能。 |
1284
1285**错误码:**
1286
1287以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1288
1289| 错误码ID | 错误信息                               |
1290| -------- | ---------------------------------------- |
1291| 17000002 | The async function is not called with await. |
1292| 17000004 | The window or component is invisible or destroyed.           |
1293
1294**示例:**
1295
1296```ts
1297import { Component, Driver, ON } from '@kit.TestKit';
1298async function demo() {
1299  let driver: Driver = Driver.create();
1300  let button: Component = await driver.findComponent(ON.type('Button'));
1301  if(await button.isEnabled()) {
1302    console.info('This button can be operated');
1303  } else {
1304    console.info('This button can not be operated');
1305  }
1306}
1307```
1308
1309### isFocused<sup>9+</sup>
1310
1311isFocused(): Promise\<boolean>
1312
1313判断控件对象获焦状态。
1314
1315**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1316
1317**系统能力**:SystemCapability.Test.UiTest
1318
1319**返回值:**
1320
1321| 类型              | 说明                                                         |
1322| ----------------- | ------------------------------------------------------------ |
1323| Promise\<boolean> | 以Promise形式返回控件对象获焦状态,true:获焦,false:未获焦。 |
1324
1325**错误码:**
1326
1327以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1328
1329| 错误码ID | 错误信息                               |
1330| -------- | ---------------------------------------- |
1331| 17000002 | The async function is not called with await. |
1332| 17000004 | The window or component is invisible or destroyed.           |
1333
1334**示例:**
1335
1336```ts
1337import { Component, Driver, ON } from '@kit.TestKit';
1338async function demo() {
1339  let driver: Driver = Driver.create();
1340  let button: Component = await driver.findComponent(ON.type('Button'));
1341  if(await button.isFocused()) {
1342    console.info('This button is focused');
1343  } else {
1344    console.info('This button is not focused');
1345  }
1346}
1347```
1348
1349### isSelected<sup>9+</sup>
1350
1351isSelected(): Promise\<boolean>
1352
1353获取控件对象被选中状态。
1354
1355**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1356
1357**系统能力**:SystemCapability.Test.UiTest
1358
1359**返回值:**
1360
1361| 类型              | 说明                                                |
1362| ----------------- | --------------------------------------------------- |
1363| Promise\<boolean> | 以Promise形式返回控件对象被选中状态,true:被选中,false:未被选中。 |
1364
1365**错误码:**
1366
1367以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1368
1369| 错误码ID | 错误信息                               |
1370| -------- | ---------------------------------------- |
1371| 17000002 | The async function is not called with await. |
1372| 17000004 | The window or component is invisible or destroyed.           |
1373
1374**示例:**
1375
1376```ts
1377import { Component, Driver, ON } from '@kit.TestKit';
1378async function demo() {
1379  let driver: Driver = Driver.create();
1380  let button: Component = await driver.findComponent(ON.type('Button'));
1381  if(await button.isSelected()) {
1382    console.info('This button is selected');
1383  } else {
1384    console.info('This button is not selected');
1385  }
1386}
1387```
1388
1389### inputText<sup>9+</sup>
1390
1391inputText(text: string): Promise\<void>
1392
1393向控件中输入文本(适用于文本框控件)。
1394
1395**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1396
1397**系统能力**:SystemCapability.Test.UiTest
1398
1399**参数:**
1400
1401| 参数名 | 类型   | 必填 | 说明                                     |
1402| ------ | ------ | ---- | ---------------------------------------- |
1403| text   | string | 是   | 输入的文本信息,当前支持英文、中文和特殊字符。 |
1404
1405**错误码:**
1406
1407以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1408
1409| 错误码ID | 错误信息                               |
1410| -------- | ---------------------------------------- |
1411| 17000002 | The async function is not called with await. |
1412| 17000004 | The window or component is invisible or destroyed.           |
1413| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1414
1415**示例:**
1416
1417```ts
1418import { Component, Driver, ON } from '@kit.TestKit';
1419async function demo() {
1420  let driver: Driver = Driver.create();
1421  let text: Component = await driver.findComponent(ON.text('hello world'));
1422  await text.inputText('123');
1423}
1424```
1425
1426### clearText<sup>9+</sup>
1427
1428clearText(): Promise\<void>
1429
1430清除控件的文本信息(适用于文本框控件)。
1431
1432**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1433
1434**系统能力**:SystemCapability.Test.UiTest
1435
1436**错误码:**
1437以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1438
1439| 错误码ID | 错误信息                               |
1440| -------- | ---------------------------------------- |
1441| 17000002 | The async function is not called with await. |
1442| 17000004 | The window or component is invisible or destroyed.           |
1443
1444**示例:**
1445
1446```ts
1447import { Component, Driver, ON } from '@kit.TestKit';
1448async function demo() {
1449  let driver: Driver = Driver.create();
1450  let text: Component = await driver.findComponent(ON.text('hello world'));
1451  await text.clearText();
1452}
1453```
1454
1455### scrollSearch<sup>9+</sup>
1456
1457scrollSearch(on: On): Promise\<Component>
1458
1459在控件上滑动查找目标控件(适用支持滑动的控件)。
1460
1461**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1462
1463**系统能力**:SystemCapability.Test.UiTest
1464
1465**参数:**
1466
1467| 参数名 | 类型       | 必填 | 说明                 |
1468| ------ | ---------- | ---- | -------------------- |
1469| on     | [On](#on9) | 是   | 目标控件的属性要求。 |
1470
1471**返回值:**
1472
1473| 类型                               | 说明                                  |
1474| ---------------------------------- | ------------------------------------- |
1475| Promise\<[Component](#component9)> | 以Promise形式返回找到的目标控件对象。 |
1476
1477**错误码:**
1478
1479以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1480
1481| 错误码ID | 错误信息                               |
1482| -------- | ---------------------------------------- |
1483| 17000002 | The async function is not called with await. |
1484| 17000004 | The window or component is invisible or destroyed.           |
1485| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1486
1487**示例:**
1488
1489```ts
1490import { Component, Driver, ON } from '@kit.TestKit';
1491async function demo() {
1492  let driver: Driver = Driver.create();
1493  let scrollBar: Component = await driver.findComponent(ON.type('Scroll'));
1494  let button = await scrollBar.scrollSearch(ON.text('next page'));
1495}
1496```
1497
1498### scrollToTop<sup>9+</sup>
1499
1500scrollToTop(speed?: number): Promise\<void>
1501
1502在控件上滑动到顶部(适用支持滑动的控件)。
1503
1504**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1505
1506**系统能力**:SystemCapability.Test.UiTest
1507
1508**参数:**
1509
1510| 参数名 | 类型   | 必填 | 说明                                                         |
1511| ------ | ------ | ---- | ------------------------------------------------------------ |
1512| speed  | number | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
1513
1514**错误码:**
1515
1516以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1517
1518| 错误码ID | 错误信息                               |
1519| -------- | ---------------------------------------- |
1520| 17000002 | The async function is not called with await. |
1521| 17000004 | The window or component is invisible or destroyed.           |
1522| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
1523
1524**示例:**
1525
1526```ts
1527import { Component, Driver, ON } from '@kit.TestKit';
1528async function demo() {
1529  let driver: Driver = Driver.create();
1530  let scrollBar: Component = await driver.findComponent(ON.type('Scroll'));
1531  await scrollBar.scrollToTop();
1532}
1533```
1534
1535### scrollToBottom<sup>9+</sup>
1536
1537scrollToBottom(speed?: number): Promise\<void>
1538
1539在控件上滑动到底部(适用支持滑动的控件)。
1540
1541**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1542
1543**系统能力**:SystemCapability.Test.UiTest
1544
1545**参数:**
1546
1547| 参数名 | 类型   | 必填 | 说明                                                         |
1548| ------ | ------ | ---- | ------------------------------------------------------------ |
1549| speed  | number | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
1550
1551**错误码:**
1552
1553以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1554
1555| 错误码ID | 错误信息                               |
1556| -------- | ---------------------------------------- |
1557| 17000002 | The async function is not called with await. |
1558| 17000004 | The window or component is invisible or destroyed.           |
1559| 401 | Parameter error. Possible causes: 1. Incorrect parameter types; 2. Parameter verification failed.|
1560
1561**示例:**
1562
1563```ts
1564import { Component, Driver, ON } from '@kit.TestKit';
1565async function demo() {
1566  let driver: Driver = Driver.create();
1567  let scrollBar: Component = await driver.findComponent(ON.type('Scroll'));
1568  await scrollBar.scrollToBottom();
1569}
1570```
1571
1572### dragTo<sup>9+</sup>
1573
1574dragTo(target: Component): Promise\<void>
1575
1576将控件拖拽至目标控件处。
1577
1578**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1579
1580**系统能力**:SystemCapability.Test.UiTest
1581
1582**参数:**
1583
1584| 参数名 | 类型                     | 必填 | 说明       |
1585| ------ | ------------------------ | ---- | ---------- |
1586| target | [Component](#component9) | 是   | 目标控件。 |
1587
1588**错误码:**
1589
1590以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1591
1592| 错误码ID | 错误信息                               |
1593| -------- | ---------------------------------------- |
1594| 17000002 | The async function is not called with await. |
1595| 17000004 | The window or component is invisible or destroyed.           |
1596| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1597
1598**示例:**
1599
1600```ts
1601import { Component, Driver, ON } from '@kit.TestKit';
1602async function demo() {
1603  let driver: Driver = Driver.create();
1604  let button: Component = await driver.findComponent(ON.type('Button'));
1605  let text: Component = await driver.findComponent(ON.text('hello world'));
1606  await button.dragTo(text);
1607}
1608```
1609
1610### pinchOut<sup>9+</sup>
1611
1612pinchOut(scale: number): Promise\<void>
1613
1614将控件按指定的比例进行捏合放大。
1615
1616**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1617
1618**系统能力**:SystemCapability.Test.UiTest
1619
1620**参数:**
1621
1622| 参数名 | 类型   | 必填 | 说明                            |
1623| ------ | ------ | ---- | ------------------------------- |
1624| scale  | number | 是   | 指定放大的比例。取值范围大于1。 |
1625
1626**错误码:**
1627
1628以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1629
1630| 错误码ID | 错误信息                               |
1631| -------- | ---------------------------------------- |
1632| 17000002 | The async function is not called with await. |
1633| 17000004 | The window or component is invisible or destroyed.           |
1634| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1635
1636**示例:**
1637
1638```ts
1639import { Component, Driver, ON } from '@kit.TestKit';
1640async function demo() {
1641  let driver: Driver = Driver.create();
1642  let image: Component = await driver.findComponent(ON.type('Image'));
1643  await image.pinchOut(1.5);
1644}
1645```
1646
1647### pinchIn<sup>9+</sup>
1648
1649pinchIn(scale: number): Promise\<void>
1650
1651将控件按指定的比例进行捏合缩小。
1652
1653**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1654
1655**系统能力**:SystemCapability.Test.UiTest
1656
1657**参数:**
1658
1659| 参数名 | 类型   | 必填 | 说明                            |
1660| ------ | ------ | ---- | ------------------------------- |
1661| scale  | number | 是   | 指定缩小的比例。取值范围为0~1。 |
1662
1663**错误码:**
1664
1665以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1666
1667| 错误码ID | 错误信息                               |
1668| -------- | ---------------------------------------- |
1669| 17000002 | The async function is not called with await. |
1670| 17000004 | The window or component is invisible or destroyed.           |
1671| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1672
1673**示例:**
1674
1675```ts
1676import { Component, Driver, ON } from '@kit.TestKit';
1677async function demo() {
1678  let driver: Driver = Driver.create();
1679  let image: Component = await driver.findComponent(ON.type('Image'));
1680  await image.pinchIn(0.5);
1681}
1682```
1683
1684### getDescription<sup>11+</sup>
1685
1686getDescription(): Promise\<string>
1687
1688获取控件对象的描述信息,使用Promise异步回调。
1689
1690**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1691
1692**系统能力**:SystemCapability.Test.UiTest
1693
1694**返回值:**
1695
1696| 类型             | 说明                              |
1697| ---------------- | --------------------------------- |
1698| Promise\<string> | Promise对象,返回控件的描述信息。 |
1699
1700**错误码:**
1701
1702以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1703
1704| 错误码ID | 错误信息                                                     |
1705| -------- | ------------------------------------------------------------ |
1706| 17000002 | The async function is not called with await.             |
1707| 17000004 | The window or component is invisible or destroyed.                  |
1708
1709**示例:**
1710
1711```ts
1712import { Component, Driver, ON } from '@kit.TestKit';
1713async function demo() {
1714  let driver: Driver = Driver.create();
1715  let button: Component = await driver.findComponent(ON.type('Button'));
1716  let description = await button.getDescription();
1717}
1718```
1719
1720## Driver<sup>9+</sup>
1721
1722Driver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。
1723该类提供的方法除Driver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await方式调用。
1724
1725### create<sup>9+</sup>
1726
1727static create(): Driver
1728
1729静态方法,构造一个Driver对象,并返回该对象。
1730
1731**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1732
1733**系统能力**:SystemCapability.Test.UiTest
1734
1735**返回值:**
1736
1737| 类型 | 说明           |
1738| -------- | ---------------------- |
1739| Driver   | 返回构造的Driver对象。 |
1740
1741**错误码:**
1742
1743以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
1744
1745| 错误码ID | 错误信息               |
1746| -------- | ---------------------- |
1747| 17000001 | Initialization failed. |
1748
1749**示例:**
1750
1751```ts
1752import { Driver } from '@kit.TestKit';
1753async function demo() {
1754  let driver: Driver = Driver.create();
1755}
1756```
1757
1758### delayMs<sup>9+</sup>
1759
1760delayMs(duration: number): Promise\<void>
1761
1762Driver对象在给定的时间内延时。
1763
1764**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1765
1766**系统能力**:SystemCapability.Test.UiTest
1767
1768**参数:**
1769
1770| 参数名   | 类型   | 必填 | 说明                            |
1771| -------- | ------ | ---- | ------------------------------- |
1772| duration | number | 是   | 给定的时间,单位:ms,取值大于等于0。 |
1773
1774**错误码:**
1775
1776以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1777
1778| 错误码ID | 错误信息                               |
1779| -------- | ---------------------------------------- |
1780| 17000002 | The async function is not called with await. |
1781| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1782
1783**示例:**
1784
1785```ts
1786import { Driver } from '@kit.TestKit';
1787async function demo() {
1788  let driver: Driver = Driver.create();
1789  await driver.delayMs(1000);
1790}
1791```
1792
1793### findComponent<sup>9+</sup>
1794
1795findComponent(on: On): Promise\<Component>
1796
1797在Driver对象中,根据给出的目标控件属性要求查找目标控件。
1798
1799**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1800
1801**系统能力**:SystemCapability.Test.UiTest
1802
1803**参数:**
1804
1805| 参数名 | 类型       | 必填 | 说明                 |
1806| ------ | ---------- | ---- | -------------------- |
1807| on     | [On](#on9) | 是   | 目标控件的属性要求。 |
1808
1809**返回值:**
1810
1811| 类型                               | 说明                              |
1812| ---------------------------------- | --------------------------------- |
1813| Promise\<[Component](#component9)> | 以Promise形式返回找到的控件对象。 |
1814
1815**错误码:**
1816
1817以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1818
1819| 错误码ID | 错误信息                               |
1820| -------- | ---------------------------------------- |
1821| 17000002 | The async function is not called with await. |
1822| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1823
1824**示例:**
1825
1826```ts
1827import { Component, Driver, ON } from '@kit.TestKit';
1828async function demo() {
1829  let driver: Driver = Driver.create();
1830  let button: Component = await driver.findComponent(ON.text('next page'));
1831}
1832```
1833
1834### findComponents<sup>9+</sup>
1835
1836findComponents(on: On): Promise\<Array\<Component>>
1837
1838在Driver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。
1839
1840**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1841
1842**系统能力**:SystemCapability.Test.UiTest
1843
1844**参数:**
1845
1846| 参数名 | 类型       | 必填 | 说明                 |
1847| ------ | ---------- | ---- | -------------------- |
1848| on     | [On](#on9) | 是   | 目标控件的属性要求。 |
1849
1850**返回值:**
1851
1852| 类型                                       | 说明                                    |
1853| ------------------------------------------ | --------------------------------------- |
1854| Promise\<Array\<[Component](#component9)>> | 以Promise形式返回找到的控件对象的列表。 |
1855
1856**错误码:**
1857
1858以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1859
1860| 错误码ID | 错误信息                               |
1861| -------- | ---------------------------------------- |
1862| 17000002 | The async function is not called with await. |
1863| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1864
1865**示例:**
1866
1867```ts
1868import { Component, Driver, ON } from '@kit.TestKit';
1869async function demo() {
1870  let driver: Driver = Driver.create();
1871  let buttonList: Array<Component> = await driver.findComponents(ON.text('next page'));
1872}
1873```
1874
1875### findWindow<sup>9+</sup>
1876
1877findWindow(filter: WindowFilter): Promise\<UiWindow>
1878
1879通过指定窗口的属性来查找目标窗口。
1880
1881**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1882
1883**系统能力**:SystemCapability.Test.UiTest
1884
1885**参数:**
1886
1887| 参数名 | 类型                           | 必填 | 说明             |
1888| ------ | ------------------------------ | ---- | ---------------- |
1889| filter | [WindowFilter](#windowfilter9) | 是   | 目标窗口的属性。 |
1890
1891**返回值:**
1892
1893| 类型                             | 说明                                  |
1894| -------------------------------- | ------------------------------------- |
1895| Promise\<[UiWindow](#uiwindow9)> | 以Promise形式返回找到的目标窗口对象。 |
1896
1897**错误码:**
1898
1899以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1900
1901| 错误码ID | 错误信息                               |
1902| -------- | ---------------------------------------- |
1903| 17000002 | The async function is not called with await. |
1904| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1905
1906**示例:**
1907
1908```ts
1909import { Driver, UiWindow } from '@kit.TestKit';
1910async function demo() {
1911  let driver: Driver = Driver.create();
1912  let window: UiWindow = await driver.findWindow({actived: true});
1913}
1914```
1915
1916### waitForComponent<sup>9+</sup>
1917
1918waitForComponent(on: On, time: number): Promise\<Component>
1919
1920在Driver对象中,在用户给定的时间内,持续查找满足控件属性要求的目标控件。
1921
1922**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1923
1924**系统能力**:SystemCapability.Test.UiTest
1925
1926**参数:**
1927
1928| 参数名 | 类型       | 必填 | 说明                                      |
1929| ------ | ---------- | ---- | ----------------------------------------- |
1930| on    | [On](#on9) | 是   | 目标控件的属性要求。                      |
1931| time   | number     | 是   | 查找目标控件的持续时间。单位ms,取值大于等于0。 |
1932
1933**返回值:**
1934
1935| 类型                              | 说明                              |
1936| --------------------------------- | --------------------------------- |
1937| Promise\<[Component](#component9)> | 以Promise形式返回找到的控件对象。 |
1938
1939**错误码:**
1940
1941以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1942
1943| 错误码ID | 错误信息                               |
1944| -------- | ---------------------------------------- |
1945| 17000002 | The async function is not called with await. |
1946| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1947
1948**示例:**
1949
1950```ts
1951import { Component, Driver, ON } from '@kit.TestKit';
1952async function demo() {
1953  let driver: Driver = Driver.create();
1954  let button: Component = await driver.waitForComponent(ON.text('next page'),500);
1955}
1956```
1957
1958### assertComponentExist<sup>9+</sup>
1959
1960assertComponentExist(on: On): Promise\<void>
1961
1962断言API,用于断言当前界面是否存在满足给出的目标属性的控件。
1963
1964**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1965
1966**系统能力**:SystemCapability.Test.UiTest
1967
1968**参数:**
1969
1970| 参数名 | 类型       | 必填 | 说明                 |
1971| ------ | ---------- | ---- | -------------------- |
1972| on     | [On](#on9) | 是   | 目标控件的属性要求。 |
1973
1974**错误码:**
1975
1976以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1977
1978| 错误码ID | 错误信息                               |
1979| -------- | ---------------------------------------- |
1980| 17000002 | The async function is not called with await. |
1981| 17000003 | Assertion failed.   |
1982| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
1983
1984**示例:**
1985
1986```ts
1987import { Driver, ON } from '@kit.TestKit';
1988async function demo() {
1989  let driver: Driver = Driver.create();
1990  await driver.assertComponentExist(ON.text('next page'));
1991}
1992```
1993
1994### pressBack<sup>9+</sup>
1995
1996pressBack(): Promise\<void>
1997
1998Driver对象进行点击BACK键的操作。
1999
2000**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2001
2002**系统能力**:SystemCapability.Test.UiTest
2003
2004**错误码:**
2005
2006以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2007
2008| 错误码ID | 错误信息                               |
2009| -------- | ---------------------------------------- |
2010| 17000002 | The async function is not called with await. |
2011
2012**示例:**
2013
2014```ts
2015import { Driver } from '@kit.TestKit';
2016async function demo() {
2017  let driver: Driver = Driver.create();
2018  await driver.pressBack();
2019}
2020```
2021
2022### triggerKey<sup>9+</sup>
2023
2024triggerKey(keyCode: number): Promise\<void>
2025
2026Driver对象采取如下操作:传入key值实现模拟点击对应按键的效果。
2027
2028**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2029
2030**系统能力**:SystemCapability.Test.UiTest
2031
2032**参数:**
2033
2034| 参数名  | 类型   | 必填 | 说明          |
2035| ------- | ------ | ---- | ------------- |
2036| keyCode | number | 是   | 指定的key值。 |
2037
2038**错误码:**
2039
2040以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2041
2042| 错误码ID | 错误信息                               |
2043| -------- | ---------------------------------------- |
2044| 17000002 | The async function is not called with await. |
2045| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2046
2047**示例:**
2048
2049```ts
2050import { Driver } from '@kit.TestKit';
2051async function demo() {
2052  let driver: Driver = Driver.create();
2053  await driver.triggerKey(123);
2054}
2055```
2056
2057### triggerCombineKeys<sup>9+</sup>
2058
2059triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\<void>
2060
2061Driver对象通过给定的key值,找到对应组合键并点击。例如,Key值为(2072, 2019)时,Driver对象找到key值对应的组合键并点击,如ctrl+c。
2062
2063**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2064
2065**系统能力**:SystemCapability.Test.UiTest
2066
2067**参数:**
2068
2069| 参数名 | 类型   | 必填 | 说明                           |
2070| ------ | ------ | ---- | ------------------------------ |
2071| key0   | number | 是   | 指定的第一个key值。            |
2072| key1   | number | 是   | 指定的第二个key值。            |
2073| key2   | number | 否   | 指定的第三个key值。默认值为0。 |
2074
2075**错误码:**
2076
2077以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2078
2079| 错误码ID | 错误信息                               |
2080| -------- | ---------------------------------------- |
2081| 17000002 | The async function is not called with await. |
2082| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2083
2084**示例:**
2085
2086```ts
2087import { Driver } from '@kit.TestKit';
2088async function demo() {
2089  let driver: Driver = Driver.create();
2090  await driver.triggerCombineKeys(2072, 2047, 2035);
2091}
2092```
2093
2094
2095### click<sup>9+</sup>
2096
2097click(x: number, y: number): Promise\<void>
2098
2099Driver对象采取如下操作:在目标坐标点单击。
2100
2101**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2102
2103**系统能力**:SystemCapability.Test.UiTest
2104
2105**参数:**
2106
2107| 参数名 | 类型   | 必填 | 说明                                            |
2108| ------ | ------ | ---- | ----------------------------------------------- |
2109| x      | number | 是   | 以number的形式传入目标点的横坐标信息,取值大于等于0。 |
2110| y      | number | 是   | 以number的形式传入目标点的纵坐标信息,取值大于等于0。 |
2111
2112**错误码:**
2113
2114以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2115
2116| 错误码ID | 错误信息                               |
2117| -------- | ---------------------------------------- |
2118| 17000002 | The async function is not called with await. |
2119| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2120
2121**示例:**
2122
2123```ts
2124import { Driver } from '@kit.TestKit';
2125async function demo() {
2126  let driver: Driver = Driver.create();
2127  await driver.click(100,100);
2128}
2129```
2130
2131### doubleClick<sup>9+</sup>
2132
2133doubleClick(x: number, y: number): Promise\<void>
2134
2135Driver对象采取如下操作:在目标坐标点双击。
2136
2137**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2138
2139**系统能力**:SystemCapability.Test.UiTest
2140
2141**参数:**
2142
2143| 参数名 | 类型   | 必填 | 说明                                            |
2144| ------ | ------ | ---- | ----------------------------------------------- |
2145| x      | number | 是   | 以number的形式传入目标点的横坐标信息,取值大于等于0。 |
2146| y      | number | 是   | 以number的形式传入目标点的纵坐标信息,取值大于等于0。 |
2147
2148**错误码:**
2149
2150以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2151
2152| 错误码ID | 错误信息                               |
2153| -------- | ---------------------------------------- |
2154| 17000002 | The async function is not called with await. |
2155| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2156
2157**示例:**
2158
2159```ts
2160import { Driver } from '@kit.TestKit';
2161async function demo() {
2162  let driver: Driver = Driver.create();
2163  await driver.doubleClick(100,100);
2164}
2165```
2166
2167### longClick<sup>9+</sup>
2168
2169longClick(x: number, y: number): Promise\<void>
2170
2171Driver对象采取如下操作:在目标坐标点长按。
2172
2173**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2174
2175**系统能力**:SystemCapability.Test.UiTest
2176
2177**参数:**
2178
2179| 参数名 | 类型   | 必填 | 说明                                            |
2180| ------ | ------ | ---- | ----------------------------------------------- |
2181| x      | number | 是   | 以number的形式传入目标点的横坐标信息,取值大于等于0。 |
2182| y      | number | 是   | 以number的形式传入目标点的纵坐标信息,取值大于等于0。 |
2183
2184**错误码:**
2185
2186以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2187
2188| 错误码ID | 错误信息                               |
2189| -------- | ---------------------------------------- |
2190| 17000002 | The async function is not called with await. |
2191| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2192
2193**示例:**
2194
2195```ts
2196import { Driver } from '@kit.TestKit';
2197async function demo() {
2198  let driver: Driver = Driver.create();
2199  await driver.longClick(100,100);
2200}
2201```
2202
2203### swipe<sup>9+</sup>
2204
2205swipe(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void>
2206
2207Driver对象采取如下操作:从起始坐标点滑向目的坐标点。
2208
2209**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2210
2211**系统能力**:SystemCapability.Test.UiTest
2212
2213**参数:**
2214
2215| 参数名 | 类型   | 必填 | 说明                                                         |
2216| ------ | ------ | ---- | ------------------------------------------------------------ |
2217| startx | number | 是   | 以number的形式传入起始点的横坐标信息,取值大于等于0。              |
2218| starty | number | 是   | 以number的形式传入起始点的纵坐标信息,取值大于等于0。              |
2219| endx   | number | 是   | 以number的形式传入目的点的横坐标信息,取值大于等于0。              |
2220| endy   | number | 是   | 以number的形式传入目的点的纵坐标信息,取值大于等于0。              |
2221| speed  | number | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
2222
2223**错误码:**
2224
2225以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2226
2227| 错误码ID | 错误信息                               |
2228| -------- | ---------------------------------------- |
2229| 17000002 | The async function is not called with await. |
2230| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2231
2232**示例:**
2233
2234```ts
2235import { Driver } from '@kit.TestKit';
2236async function demo() {
2237  let driver: Driver = Driver.create();
2238  await driver.swipe(100,100,200,200,600);
2239}
2240```
2241
2242### drag<sup>9+</sup>
2243
2244drag(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void>
2245
2246Driver对象采取如下操作:从起始坐标点拖拽至目的坐标点。
2247
2248**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2249
2250**系统能力**:SystemCapability.Test.UiTest
2251
2252**参数:**
2253
2254| 参数名 | 类型   | 必填 | 说明                                                         |
2255| ------ | ------ | ---- | ------------------------------------------------------------ |
2256| startx | number | 是   | 以number的形式传入起始点的横坐标信息,取值大于等于0。              |
2257| starty | number | 是   | 以number的形式传入起始点的纵坐标信息,取值大于等于0。              |
2258| endx   | number | 是   | 以number的形式传入目的点的横坐标信息,取值大于等于0。              |
2259| endy   | number | 是   | 以number的形式传入目的点的纵坐标信息,取值大于等于0。              |
2260| speed  | number | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
2261
2262**错误码:**
2263
2264以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2265
2266| 错误码ID | 错误信息                               |
2267| -------- | ---------------------------------------- |
2268| 17000002 | The async function is not called with await. |
2269| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2270
2271**示例:**
2272
2273```ts
2274import { Driver } from '@kit.TestKit';
2275async function demo() {
2276  let driver: Driver = Driver.create();
2277  await driver.drag(100,100,200,200,600);
2278}
2279```
2280
2281### screenCap<sup>9+</sup>
2282
2283screenCap(savePath: string): Promise\<boolean>
2284
2285Driver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。适用于支持截屏的场景。
2286
2287**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2288
2289**系统能力**:SystemCapability.Test.UiTest
2290
2291**参数:**
2292
2293| 参数名   | 类型   | 必填 | 说明                                       |
2294| -------- | ------ | ---- | ------------------------------------------ |
2295| savePath | string | 是   | 文件保存路径。路径需为当前应用的沙箱路径。 |
2296
2297**返回值:**
2298
2299| 类型              | 说明                                   |
2300| ----------------- | -------------------------------------- |
2301| Promise\<boolean> | 以Promise形式返回截图操作是否成功完成。成功完成为true。 |
2302
2303**错误码:**
2304
2305以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2306
2307| 错误码ID | 错误信息                               |
2308| -------- | ---------------------------------------- |
2309| 17000002 | The async function is not called with await. |
2310| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2311
2312**示例:**
2313
2314```ts
2315import { Driver } from '@kit.TestKit';
2316async function demo() {
2317  let driver: Driver = Driver.create();
2318  await driver.screenCap('/data/storage/el2/base/cache/1.png');
2319}
2320```
2321
2322### setDisplayRotation<sup>9+</sup>
2323
2324setDisplayRotation(rotation: DisplayRotation): Promise\<void>
2325
2326将当前场景的显示方向设置为指定的显示方向。适用于可旋转的应用场景。
2327
2328**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2329
2330**系统能力**:SystemCapability.Test.UiTest
2331
2332**参数:**
2333
2334| 参数名   | 类型                                 | 必填 | 说明             |
2335| -------- | ------------------------------------ | ---- | ---------------- |
2336| rotation | [DisplayRotation](#displayrotation9) | 是   | 设备的显示方向。 |
2337
2338**错误码:**
2339
2340以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2341
2342| 错误码ID | 错误信息                               |
2343| -------- | ---------------------------------------- |
2344| 17000002 | The async function is not called with await. |
2345| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2346
2347**示例:**
2348
2349```ts
2350import { Driver, DisplayRotation } from '@kit.TestKit';
2351async function demo() {
2352  let driver: Driver = Driver.create();
2353  await driver.setDisplayRotation(DisplayRotation.ROTATION_180);
2354}
2355```
2356
2357### getDisplayRotation<sup>9+</sup>
2358
2359getDisplayRotation(): Promise\<DisplayRotation>
2360
2361获取当前设备的屏幕显示方向。
2362
2363**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2364
2365**系统能力**:SystemCapability.Test.UiTest
2366
2367**返回值:**
2368
2369| 类型                                           | 说明                                    |
2370| ---------------------------------------------- | --------------------------------------- |
2371| Promise\<[DisplayRotation](#displayrotation9)> | 以Promise的形式返回当前设备的显示方向。 |
2372
2373**错误码:**
2374
2375以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2376
2377| 错误码ID | 错误信息                               |
2378| -------- | ---------------------------------------- |
2379| 17000002 | The async function is not called with await. |
2380
2381**示例:**
2382
2383```ts
2384import { DisplayRotation, Driver } from '@kit.TestKit';
2385async function demo() {
2386  let driver: Driver = Driver.create();
2387  let rotation: DisplayRotation = await driver.getDisplayRotation();
2388}
2389```
2390
2391### setDisplayRotationEnabled<sup>9+</sup>
2392
2393setDisplayRotationEnabled(enabled: boolean): Promise\<void>
2394
2395启用/禁用设备旋转屏幕的功能。
2396
2397**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2398
2399**系统能力**:SystemCapability.Test.UiTest
2400
2401**参数:**
2402
2403| 参数名  | 类型    | 必填 | 说明                                                    |
2404| ------- | ------- | ---- | ------------------------------------------------------- |
2405| enabled | boolean | 是   | 能否旋转屏幕的标识,true:可以旋转,false:不可以旋转。 |
2406
2407**错误码:**
2408
2409以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2410
2411| 错误码ID | 错误信息                               |
2412| -------- | ---------------------------------------- |
2413| 17000002 | The async function is not called with await. |
2414| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2415
2416**示例:**
2417
2418```ts
2419import { Driver } from '@kit.TestKit';
2420async function demo() {
2421  let driver: Driver = Driver.create();
2422  await driver.setDisplayRotationEnabled(false);
2423}
2424```
2425
2426### getDisplaySize<sup>9+</sup>
2427
2428getDisplaySize(): Promise\<Point>
2429
2430获取当前设备的屏幕大小。
2431
2432**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2433
2434**系统能力**:SystemCapability.Test.UiTest
2435
2436**返回值:**
2437
2438| 类型                       | 说明                                    |
2439| -------------------------- | --------------------------------------- |
2440| Promise\<[Point](#point9)> | 以Promise的形式返回当前设备的屏幕大小。 |
2441
2442**错误码:**
2443
2444以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2445
2446| 错误码ID | 错误信息                               |
2447| -------- | ---------------------------------------- |
2448| 17000002 | The async function is not called with await. |
2449
2450**示例:**
2451
2452```ts
2453import { Driver, } from '@kit.TestKit';
2454
2455async function demo() {
2456  let driver: Driver = Driver.create();
2457  let size = await driver.getDisplaySize();
2458}
2459```
2460
2461### getDisplayDensity<sup>9+</sup>
2462
2463getDisplayDensity(): Promise\<Point>
2464
2465获取当前设备屏幕的分辨率。
2466
2467**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2468
2469**系统能力**:SystemCapability.Test.UiTest
2470
2471**返回值:**
2472
2473| 类型                       | 说明                                      |
2474| -------------------------- | ----------------------------------------- |
2475| Promise\<[Point](#point9)> | 以Promise的形式返回当前设备屏幕的分辨率。 |
2476
2477**错误码:**
2478
2479以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2480
2481| 错误码ID | 错误信息                               |
2482| -------- | ---------------------------------------- |
2483| 17000002 | The async function is not called with await. |
2484
2485**示例:**
2486
2487```ts
2488import { Driver } from '@kit.TestKit';
2489async function demo() {
2490  let driver: Driver = Driver.create();
2491  let density = await driver.getDisplayDensity();
2492}
2493```
2494
2495### wakeUpDisplay<sup>9+</sup>
2496
2497wakeUpDisplay(): Promise\<void>
2498
2499唤醒当前设备即设备亮屏。
2500
2501**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2502
2503**系统能力**:SystemCapability.Test.UiTest
2504
2505**错误码:**
2506
2507以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2508
2509| 错误码ID | 错误信息                               |
2510| -------- | ---------------------------------------- |
2511| 17000002 | The async function is not called with await. |
2512
2513**示例:**
2514
2515```ts
2516import { Driver } from '@kit.TestKit';
2517async function demo() {
2518  let driver: Driver = Driver.create();
2519  await driver.wakeUpDisplay();
2520}
2521```
2522
2523### pressHome<sup>9+</sup>
2524
2525pressHome(): Promise\<void>
2526
2527设备返回到桌面。
2528
2529**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2530
2531**系统能力**:SystemCapability.Test.UiTest
2532
2533**错误码:**
2534
2535以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2536
2537| 错误码ID | 错误信息                               |
2538| -------- | ---------------------------------------- |
2539| 17000002 | The async function is not called with await. |
2540
2541**示例:**
2542
2543```ts
2544import { Driver } from '@kit.TestKit';
2545async function demo() {
2546  let driver: Driver = Driver.create();
2547  await driver.pressHome();
2548}
2549```
2550
2551### waitForIdle<sup>9+</sup>
2552
2553waitForIdle(idleTime: number, timeout: number): Promise\<boolean>
2554
2555判断当前界面的所有控件是否已经空闲。
2556
2557**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2558
2559**系统能力**:SystemCapability.Test.UiTest
2560
2561**参数:**
2562
2563| 参数名   | 类型   | 必填 | 说明                                                         |
2564| -------- | ------ | ---- | ------------------------------------------------------------ |
2565| idleTime | number | 是   | 空闲时间的阈值。在这个时间段控件不发生变化,视为该控件空闲,单位:毫秒,取值大于等于0。 |
2566| timeout  | number | 是   | 等待空闲的最大时间,单位:毫秒,取值大于等于0。                    |
2567
2568**返回值:**
2569
2570| 类型              | 说明                                                |
2571| ----------------- | --------------------------------------------------- |
2572| Promise\<boolean> | 以Promise的形式返回当前界面的所有控件是否已经空闲。 |
2573
2574**错误码:**
2575
2576以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2577
2578| 错误码ID | 错误信息                               |
2579| -------- | ---------------------------------------- |
2580| 17000002 | The async function is not called with await. |
2581| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2582
2583**示例:**
2584
2585```ts
2586import { Driver } from '@kit.TestKit';
2587async function demo() {
2588  let driver: Driver = Driver.create();
2589  let idled:boolean = await driver.waitForIdle(4000,5000);
2590}
2591```
2592
2593### fling<sup>9+</sup>
2594
2595fling(from: Point, to: Point, stepLen: number, speed: number): Promise\<void>
2596
2597模拟手指滑动后脱离屏幕的快速滑动操作。
2598
2599**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2600
2601**系统能力**:SystemCapability.Test.UiTest
2602
2603**参数:**
2604
2605| 参数名  | 类型             | 必填 | 说明                                                         |
2606| ------- | ---------------- | ---- | ------------------------------------------------------------ |
2607| from    | [Point](#point9) | 是   | 手指接触屏幕的起始点坐标。                                   |
2608| to      | [Point](#point9) | 是   | 手指离开屏幕时的坐标点。                                     |
2609| stepLen | number           | 是   | 间隔距离,单位:像素点。                                     |
2610| speed   | number           | 是   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
2611
2612**错误码:**
2613
2614以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2615
2616| 错误码ID | 错误信息                               |
2617| -------- | ---------------------------------------- |
2618| 17000002 | The async function is not called with await. |
2619| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2620
2621**示例:**
2622
2623```ts
2624import { Driver } from '@kit.TestKit';
2625async function demo() {
2626  let driver: Driver = Driver.create();
2627  await driver.fling({x: 500, y: 480},{x: 450, y: 480},5,600);
2628}
2629```
2630
2631### injectMultiPointerAction<sup>9+</sup>
2632
2633injectMultiPointerAction(pointers: PointerMatrix, speed?: number): Promise\<boolean>
2634
2635向设备注入多指操作。
2636
2637**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2638
2639**系统能力**:SystemCapability.Test.UiTest
2640
2641**参数:**
2642
2643| 参数名   | 类型                             | 必填 | 说明                                                         |
2644| -------- | -------------------------------- | ---- | ------------------------------------------------------------ |
2645| pointers | [PointerMatrix](#pointermatrix9) | 是   | 滑动轨迹,包括操作手指个数和滑动坐标序列。                   |
2646| speed    | number                           | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
2647
2648**返回值:**
2649
2650| 类型              | 说明                                  |
2651| ----------------- | ------------------------------------- |
2652| Promise\<boolean> | 以Promise的形式返回操作是否成功完成。 |
2653
2654**错误码:**
2655
2656以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2657
2658| 错误码ID | 错误信息                               |
2659| -------- | ---------------------------------------- |
2660| 17000002 | The async function is not called with await. |
2661| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2662
2663**示例:**
2664
2665```ts
2666import { Driver, PointerMatrix } from '@kit.TestKit';
2667async function demo() {
2668  let driver: Driver = Driver.create();
2669  let pointers: PointerMatrix = PointerMatrix.create(2,5);
2670  pointers.setPoint(0,0,{x:250,y:480});
2671  pointers.setPoint(0,1,{x:250,y:440});
2672  pointers.setPoint(0,2,{x:250,y:400});
2673  pointers.setPoint(0,3,{x:250,y:360});
2674  pointers.setPoint(0,4,{x:250,y:320});
2675  pointers.setPoint(1,0,{x:250,y:480});
2676  pointers.setPoint(1,1,{x:250,y:440});
2677  pointers.setPoint(1,2,{x:250,y:400});
2678  pointers.setPoint(1,3,{x:250,y:360});
2679  pointers.setPoint(1,4,{x:250,y:320});
2680  await driver.injectMultiPointerAction(pointers);
2681}
2682```
2683
2684### fling<sup>10+</sup>
2685
2686fling(direction: UiDirection, speed: number): Promise\<void>;
2687
2688指定方向和速度,模拟手指滑动后脱离屏幕的快速滑动操作。
2689
2690**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2691
2692**系统能力**:SystemCapability.Test.UiTest
2693
2694**参数:**
2695
2696| 参数名    | 类型                          | 必填 | 说明                                                         |
2697| --------- | ----------------------------- | ---- | ------------------------------------------------------------ |
2698| direction | [UiDirection](#uidirection10) | 是   | 进行抛滑的方向。                                             |
2699| speed     | number                        | 是   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
2700
2701**错误码:**
2702
2703以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2704
2705| 错误码ID | 错误信息                                                     |
2706| -------- | ------------------------------------------------------------ |
2707| 17000002 | The async function is not called with await.             |
2708| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2709
2710**示例:**
2711
2712```ts
2713import { Driver, UiDirection } from '@kit.TestKit';
2714async function demo() {
2715  let driver: Driver = Driver.create();
2716  await driver.fling(UiDirection.DOWN, 10000);
2717}
2718```
2719
2720### screenCapture<sup>10+</sup>
2721
2722screenCapture(savePath: string, rect?: Rect): Promise\<boolean>;
2723
2724捕获当前屏幕的指定区域,并保存为PNG格式的图片至给出的保存路径中。适用于支持截屏的场景。
2725
2726**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2727
2728**系统能力**:SystemCapability.Test.UiTest
2729
2730**参数:**
2731
2732| 参数名   | 类型           | 必填 | 说明                                       |
2733| -------- | -------------- | ---- | ------------------------------------------ |
2734| savePath | string         | 是   | 文件保存路径。路径需为当前应用的沙箱路径。 |
2735| rect     | [Rect](#rect9) | 否   | 截图区域,默认为全屏。                     |
2736
2737**返回值:**
2738
2739| 类型              | 说明                                   |
2740| ----------------- | -------------------------------------- |
2741| Promise\<boolean> | 以Promise形式返回截图操作是否成功完成。成功完成为true。 |
2742
2743**错误码:**
2744
2745以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2746
2747| 错误码ID | 错误信息                                                     |
2748| -------- | ------------------------------------------------------------ |
2749| 17000002 | The async function is not called with await.             |
2750| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2751
2752**示例:**
2753
2754```ts
2755import { Driver } from '@kit.TestKit';
2756async function demo() {
2757  let driver: Driver = Driver.create();
2758  await driver.screenCapture('/data/storage/el2/base/cache/1.png', {left: 0, top: 0, right: 100, bottom: 100});
2759}
2760```
2761
2762### mouseClick<sup>10+</sup>
2763
2764mouseClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void>;
2765
2766在指定坐标点注入鼠标点击动作,支持同时按下对应键盘组合键。例如,Key值为2072时,按下ctrl并进行鼠标点击动作。
2767
2768**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2769
2770**系统能力**:SystemCapability.Test.UiTest
2771
2772**参数:**
2773
2774| 参数名 | 类型                          | 必填 | 说明                           |
2775| ------ | ----------------------------- | ---- | ------------------------------ |
2776| p      | [Point](#point9)              | 是   | 鼠标点击的坐标。               |
2777| btnId  | [MouseButton](#mousebutton10) | 是   | 按下的鼠标按钮。               |
2778| key1   | number                        | 否   | 指定的第一个key值。默认值为0。 |
2779| key2   | number                        | 否   | 指定的第二个key值。默认值为0。 |
2780
2781**错误码:**
2782
2783以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2784
2785| 错误码ID | 错误信息                                                     |
2786| -------- | ------------------------------------------------------------ |
2787| 17000002 | The async function is not called with await.             |
2788| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2789
2790**示例:**
2791
2792```ts
2793import { Driver,MouseButton } from '@kit.TestKit';
2794async function demo() {
2795  let driver: Driver = Driver.create();
2796  await driver.mouseClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072);
2797}
2798```
2799
2800### mouseScroll<sup>10+</sup>
2801
2802mouseScroll(p: Point, down: boolean, d: number, key1?: number, key2?: number): Promise\<void>;
2803
2804在指定坐标点注入鼠标滚轮滑动动作,支持同时按下对应键盘组合键。例如,Key值为2072时,按下ctrl并进行鼠标滚轮滑动动作。
2805
2806**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2807
2808**系统能力**:SystemCapability.Test.UiTest
2809
2810**参数:**
2811
2812| 参数名 | 类型             | 必填 | 说明                                                        |
2813| ------ | ---------------- | ---- | ----------------------------------------------------------- |
2814| p      | [Point](#point9) | 是   | 鼠标点击的坐标。                                            |
2815| down   | boolean          | 是   | 滚轮滑动方向是否向下,true表示向下滑动,false表示向上滚动。 |
2816| d      | number           | 是   | 鼠标滚轮滚动的格数,每格对应目标点位移120个像素点。         |
2817| key1   | number           | 否   | 指定的第一个key值。默认值为0。                              |
2818| key2   | number           | 否   | 指定的第二个key值。默认值为0。                              |
2819
2820**错误码:**
2821
2822以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2823
2824| 错误码ID | 错误信息                                                     |
2825| -------- | ------------------------------------------------------------ |
2826| 17000002 | The async function is not called with await.             |
2827| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2828
2829**示例:**
2830
2831```ts
2832import { Driver } from '@kit.TestKit';
2833async function demo() {
2834  let driver: Driver = Driver.create();
2835  await driver.mouseScroll({x:360, y:640}, true, 30, 2072)
2836}
2837```
2838
2839### mouseMoveTo<sup>10+</sup>
2840
2841mouseMoveTo(p: Point): Promise\<void>;
2842
2843将鼠标光标移到目标点。
2844
2845**系统能力**:SystemCapability.Test.UiTest
2846
2847**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2848
2849**参数:**
2850
2851| 参数名 | 类型             | 必填 | 说明           |
2852| ------ | ---------------- | ---- | -------------- |
2853| p      | [Point](#point9) | 是   | 目标点的坐标。 |
2854
2855**错误码:**
2856
2857以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2858
2859| 错误码ID | 错误信息                                                     |
2860| -------- | ------------------------------------------------------------ |
2861| 17000002 | The async function is not called with await.             |
2862| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2863
2864**示例:**
2865
2866```ts
2867import { Driver } from '@kit.TestKit';
2868async function demo() {
2869  let driver: Driver = Driver.create();
2870  await driver.mouseMoveTo({x:100, y:100})
2871}
2872```
2873
2874### createUIEventObserver<sup>10+</sup>
2875
2876createUIEventObserver(): UIEventObserver;
2877
2878创建一个UI事件监听器。
2879
2880**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2881
2882**系统能力**:SystemCapability.Test.UiTest
2883
2884**返回值:**
2885
2886| 类型                                   | 说明                                  |
2887| ------------------------------------ | ------------------------------------- |
2888|[UIEventObserver](#uieventobserver10) | 返回找到的目标窗口对象。 |
2889
2890**错误码:**
2891
2892以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
2893
2894| 错误码ID | 错误信息                                 |
2895| -------- | ---------------------------------------- |
2896| 17000002 | The async function is not called with await. |
2897
2898**示例:**
2899
2900```ts
2901import { Driver, UIEventObserver } from '@kit.TestKit';
2902async function demo() {
2903  let driver: Driver = Driver.create();
2904  let observer: UIEventObserver = await driver.createUIEventObserver()
2905}
2906```
2907
2908### mouseScroll<sup>11+</sup>
2909
2910mouseScroll(p: Point, down: boolean, d: number, key1?: number, key2?: number, speed?: number): Promise\<void>
2911
2912在指定坐标点注入鼠标滚轮滑动动作,支持同时按下对应键盘组合键并且指定滑动速度。
2913
2914**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2915
2916**系统能力**:SystemCapability.Test.UiTest
2917
2918**参数:**
2919
2920| 参数名 | 类型             | 必填 | 说明                                                         |
2921| ------ | ---------------- | ---- | ------------------------------------------------------------ |
2922| p      | [Point](#point9) | 是   | 鼠标点击的坐标。                                             |
2923| down   | boolean          | 是   | 滚轮滑动方向是否向下,true表示向下滑动,false表示向上滚动。  |
2924| d      | number           | 是   | 鼠标滚轮滚动的格数,每格对应目标点位移120个像素点。          |
2925| key1   | number           | 否   | 指定的第一个key值。默认值为0。                               |
2926| key2   | number           | 否   | 指定的第二个key值。默认值为0。                               |
2927| speed  | number           | 否   | 鼠标滚轮滚动的速度,范围:1-500,不在范围内设为默认值为20,单位:格/秒。 |
2928
2929**错误码:**
2930
2931以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2932
2933| 错误码ID | 错误信息                                                     |
2934| -------- | ------------------------------------------------------------ |
2935| 17000002 | The async function is not called with await.             |
2936| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2937
2938**示例:**
2939
2940```ts
2941import { Driver } from '@kit.TestKit';
2942async function demo() {
2943  let driver: Driver = Driver.create();
2944  await driver.mouseScroll({x:360, y:640}, true, 30, 2072,20)
2945}
2946```
2947
2948### mouseDoubleClick<sup>11+</sup>
2949
2950mouseDoubleClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void>
2951
2952在指定坐标点注入鼠标双击动作,支持同时按下对应键盘组合键。例如,Key值为2072时,按下ctrl并进行鼠标双击动作。
2953
2954**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2955
2956**系统能力**:SystemCapability.Test.UiTest
2957
2958**参数:**
2959
2960| 参数名 | 类型                          | 必填 | 说明                           |
2961| ------ | ----------------------------- | ---- | ------------------------------ |
2962| p      | [Point](#point9)              | 是   | 鼠标双击的坐标。               |
2963| btnId  | [MouseButton](#mousebutton10) | 是   | 按下的鼠标按钮。               |
2964| key1   | number                        | 否   | 指定的第一个key值。默认值为0。 |
2965| key2   | number                        | 否   | 指定的第二个key值。默认值为0。 |
2966
2967**错误码:**
2968
2969以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2970
2971| 错误码ID | 错误信息                                                     |
2972| -------- | ------------------------------------------------------------ |
2973| 17000002 | The async function is not called with await.             |
2974| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
2975
2976**示例:**
2977
2978```ts
2979import { Driver,MouseButton } from '@kit.TestKit';
2980async function demo() {
2981  let driver: Driver = Driver.create();
2982  await driver.mouseDoubleClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072);
2983}
2984```
2985
2986### mouseLongClick<sup>11+</sup>
2987
2988mouseLongClick(p: Point, btnId: MouseButton, key1?: number, key2?: number): Promise\<void>
2989
2990在指定坐标点注入鼠标长按动作,支持同时按下对应键盘组合键。例如,Key值为2072时,按下ctrl并进行鼠标长按动作。
2991
2992**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2993
2994**系统能力**:SystemCapability.Test.UiTest
2995
2996**参数:**
2997
2998| 参数名 | 类型                          | 必填 | 说明                           |
2999| ------ | ----------------------------- | ---- | ------------------------------ |
3000| p      | [Point](#point9)              | 是   | 鼠标长按的坐标。               |
3001| btnId  | [MouseButton](#mousebutton10) | 是   | 按下的鼠标按钮。               |
3002| key1   | number                        | 否   | 指定的第一个key值。默认值为0。 |
3003| key2   | number                        | 否   | 指定的第二个key值。默认值为0。 |
3004
3005**错误码:**
3006
3007以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3008
3009| 错误码ID | 错误信息                                                     |
3010| -------- | ------------------------------------------------------------ |
3011| 17000002 | The async function is not called with await.             |
3012| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3013
3014**示例:**
3015
3016```ts
3017import { Driver,MouseButton } from '@kit.TestKit';
3018async function demo() {
3019  let driver:Driver = Driver.create();
3020  await driver.mouseLongClick({x:248, y:194}, MouseButton.MOUSE_BUTTON_LEFT, 2072);
3021}
3022```
3023
3024### mouseMoveWithTrack<sup>11+</sup>
3025
3026mouseMoveWithTrack(from: Point, to: Point, speed?: number): Promise\<void>
3027
3028鼠标从起始坐标点滑向终点坐标点。
3029
3030**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3031
3032**系统能力**:SystemCapability.Test.UiTest
3033
3034**参数:**
3035
3036| 参数名 | 类型             | 必填 | 说明                                                         |
3037| ------ | ---------------- | ---- | ------------------------------------------------------------ |
3038| from   | [Point](#point9) | 是   | 起始点坐标。                                                 |
3039| to     | [Point](#point9) | 是   | 终点坐标。                                                   |
3040| speed  | number           | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
3041
3042**错误码:**
3043
3044以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3045
3046| 错误码ID | 错误信息                                                     |
3047| -------- | ------------------------------------------------------------ |
3048| 17000002 | The async function is not called with await.             |
3049| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3050
3051**示例:**
3052
3053```ts
3054import { Driver } from '@kit.TestKit';
3055async function demo() {
3056  let driver: Driver = Driver.create();
3057  await driver.mouseMoveWithTrack({x:100, y:100},{x:200, y:200},600);
3058}
3059```
3060
3061### mouseDrag<sup>11+</sup>
3062
3063mouseDrag(from: Point, to: Point, speed?: number): Promise\<void>
3064
3065鼠标按住鼠标左键从起始坐标点拖拽至终点坐标点。
3066
3067**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3068
3069**系统能力**:SystemCapability.Test.UiTest
3070
3071**参数:**
3072
3073| 参数名 | 类型             | 必填 | 说明                                                         |
3074| ------ | ---------------- | ---- | ------------------------------------------------------------ |
3075| from   | [Point](#point9) | 是   | 起始点坐标。                                                 |
3076| to     | [Point](#point9) | 是   | 终点坐标。                                                   |
3077| speed  | number           | 否   | 滑动速率,范围:200-40000,不在范围内设为默认值为600,单位:像素点/秒。 |
3078
3079**错误码:**
3080
3081以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3082
3083| 错误码ID | 错误信息                                                     |
3084| -------- | ------------------------------------------------------------ |
3085| 17000002 | The async function is not called with await.             |
3086| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3087
3088**示例:**
3089
3090```ts
3091import { Driver } from '@kit.TestKit';
3092async function demo() {
3093  let driver: Driver = Driver.create();
3094  await driver.mouseDrag({x:100, y:100},{x:200, y:200},600);
3095}
3096```
3097
3098### inputText<sup>11+</sup>
3099
3100inputText(p: Point, text: string): Promise\<void>
3101
3102在指定坐标点输入文本。
3103
3104**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3105
3106**系统能力**:SystemCapability.Test.UiTest
3107
3108**参数:**
3109
3110| 参数名 | 类型             | 必填 | 说明               |
3111| ------ | ---------------- | ---- | ------------------ |
3112| p      | [Point](#point9) | 是   | 输入文本的坐标点。 |
3113| text   | string           | 是   | 输入的文本信息,当前支持英文、中文和特殊字符。   |
3114
3115**错误码:**
3116
3117以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3118
3119| 错误码ID | 错误信息                                                     |
3120| -------- | ------------------------------------------------------------ |
3121| 17000002 | The async function is not called with await.             |
3122| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3123
3124**示例:**
3125
3126```ts
3127import { Component, Driver, ON } from '@kit.TestKit';
3128async function demo() {
3129  let driver:Driver = Driver.create();
3130  let text: Component = await driver.findComponent(ON.type('TextInput'));
3131  let point = await text.getBoundsCenter();
3132  await driver.inputText(point, '123');
3133}
3134```
3135
3136## PointerMatrix<sup>9+</sup>
3137
3138存储多指操作中每根手指每一步动作的坐标点及其行为的二维数组。
3139
3140### create<sup>9+</sup>
3141
3142static create(fingers: number, steps: number): PointerMatrix
3143
3144静态方法,构造一个PointerMatrix对象,并返回该对象。
3145
3146**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3147
3148**系统能力**:SystemCapability.Test.UiTest
3149
3150**参数:**
3151
3152| 参数名  | 类型   | 必填 | 说明                                       |
3153| ------- | ------ | ---- | ------------------------------------------ |
3154| fingers | number | 是   | 多指操作中注入的手指数,取值范围:[1,10]。 |
3155| steps   | number | 是   | 每根手指操作的步骤数,取值范围:[1,1000]。 |
3156
3157**返回值:**
3158
3159| 类型                             | 说明                          |
3160| -------------------------------- | ----------------------------- |
3161| [PointerMatrix](#pointermatrix9) | 返回构造的PointerMatrix对象。 |
3162
3163**错误码:**
3164
3165以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3166
3167| 错误码ID | 错误信息                                                     |
3168| -------- | ------------------------------------------------------------ |
3169| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3170
3171**示例:**
3172
3173```ts
3174import { PointerMatrix } from '@kit.TestKit';
3175async function demo() {
3176  let pointerMatrix: PointerMatrix = PointerMatrix.create(2,3);
3177}
3178```
3179
3180### setPoint<sup>9+</sup>
3181
3182setPoint(finger: number, step: number, point: Point): void
3183
3184设置PointerMatrix对象中指定手指和步骤对应动作的坐标点。
3185
3186**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3187
3188**系统能力**:SystemCapability.Test.UiTest
3189
3190**参数:**
3191
3192| 参数名 | 类型             | 必填 | 说明                                                       |
3193| ------ | ---------------- | ---- | ---------------------------------------------------------- |
3194| finger | number           | 是   | 手指的序号。                                               |
3195| step   | number           | 是   | 步骤的序号。                                               |
3196| point  | [Point](#point9) | 是   | 该行为的坐标点。建议相邻的坐标点距离在10至80像素点范围内。 |
3197
3198**错误码:**
3199
3200以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3201
3202| 错误码ID | 错误信息                                                     |
3203| -------- | ------------------------------------------------------------ |
3204| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3205
3206**示例:**
3207
3208```ts
3209import { PointerMatrix } from '@kit.TestKit';
3210async function demo() {
3211  let pointers: PointerMatrix = PointerMatrix.create(2,5);
3212  pointers.setPoint(0,0,{x:250,y:480});
3213  pointers.setPoint(0,1,{x:250,y:440});
3214  pointers.setPoint(0,2,{x:250,y:400});
3215  pointers.setPoint(0,3,{x:250,y:360});
3216  pointers.setPoint(0,4,{x:250,y:320});
3217  pointers.setPoint(1,0,{x:250,y:480});
3218  pointers.setPoint(1,1,{x:250,y:440});
3219  pointers.setPoint(1,2,{x:250,y:400});
3220  pointers.setPoint(1,3,{x:250,y:360});
3221  pointers.setPoint(1,4,{x:250,y:320});
3222}
3223```
3224
3225## UiWindow<sup>9+</sup>
3226
3227UiWindow代表了UI界面上的一个窗口,提供窗口属性获取,窗口拖动、调整窗口大小等能力。
3228该类提供的所有方法都使用Promise方式作为异步方法,需使用await方式调用。
3229
3230### getBundleName<sup>9+</sup>
3231
3232getBundleName(): Promise\<string>
3233
3234获取窗口归属应用的包名信息。
3235
3236**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3237
3238**系统能力**:SystemCapability.Test.UiTest
3239
3240**返回值:**
3241
3242| 类型             | 说明                                      |
3243| ---------------- | ----------------------------------------- |
3244| Promise\<string> | 以Promise形式返回窗口归属应用的包名信息。 |
3245
3246**错误码:**
3247
3248以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3249
3250| 错误码ID | 错误信息                               |
3251| -------- | ---------------------------------------- |
3252| 17000002 | The async function is not called with await. |
3253| 17000004 | The window or component is invisible or destroyed.           |
3254
3255**示例:**
3256
3257```ts
3258import { Driver, UiWindow } from '@kit.TestKit';
3259
3260async function demo() {
3261  let driver: Driver = Driver.create();
3262  let window: UiWindow = await driver.findWindow({actived: true});
3263  let name: string = await window.getBundleName();
3264}
3265```
3266
3267### getBounds<sup>9+</sup>
3268
3269getBounds(): Promise\<Rect>
3270
3271获取窗口的边框信息。
3272
3273**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3274
3275**系统能力**:SystemCapability.Test.UiTest
3276
3277**返回值:**
3278
3279| 类型                     | 说明                              |
3280| ------------------------ | --------------------------------- |
3281| Promise\<[Rect](#rect9)> | 以Promise形式返回窗口的边框信息。 |
3282
3283**错误码:**
3284
3285以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3286
3287| 错误码ID | 错误信息                               |
3288| -------- | ---------------------------------------- |
3289| 17000002 | The async function is not called with await. |
3290| 17000004 | The window or component is invisible or destroyed.           |
3291
3292**示例:**
3293
3294```ts
3295import { Driver, UiWindow } from '@kit.TestKit';
3296async function demo() {
3297  let driver: Driver = Driver.create();
3298  let window: UiWindow = await driver.findWindow({actived: true});
3299  let rect = await window.getBounds();
3300}
3301```
3302
3303### getTitle<sup>9+</sup>
3304
3305getTitle(): Promise\<string>
3306
3307获取窗口的标题信息。
3308
3309**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3310
3311**系统能力**:SystemCapability.Test.UiTest
3312
3313**返回值:**
3314
3315| 类型             | 说明                              |
3316| ---------------- | --------------------------------- |
3317| Promise\<string> | 以Promise形式返回窗口的标题信息。 |
3318
3319**错误码:**
3320
3321以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3322
3323| 错误码ID | 错误信息                               |
3324| -------- | ---------------------------------------- |
3325| 17000002 | The async function is not called with await. |
3326| 17000004 | The window or component is invisible or destroyed.           |
3327
3328**示例:**
3329
3330```ts
3331import { Driver, UiWindow } from '@kit.TestKit';
3332async function demo() {
3333  let driver: Driver = Driver.create();
3334  let window: UiWindow = await driver.findWindow({actived: true});
3335  let rect = await window.getTitle();
3336}
3337```
3338
3339### getWindowMode<sup>9+</sup>
3340
3341getWindowMode(): Promise\<WindowMode>
3342
3343获取窗口的窗口模式信息。
3344
3345**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3346
3347**系统能力**:SystemCapability.Test.UiTest
3348
3349**返回值:**
3350
3351| 类型                                 | 说明                                  |
3352| ------------------------------------ | ------------------------------------- |
3353| Promise\<[WindowMode](#windowmode9)> | 以Promise形式返回窗口的窗口模式信息。 |
3354
3355**错误码:**
3356
3357以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3358
3359| 错误码ID | 错误信息                               |
3360| -------- | ---------------------------------------- |
3361| 17000002 | The async function is not called with await. |
3362| 17000004 | The window or component is invisible or destroyed.          |
3363
3364**示例:**
3365
3366```ts
3367import { Driver, UiWindow } from '@kit.TestKit';
3368async function demo() {
3369  let driver: Driver = Driver.create();
3370  let window: UiWindow = await driver.findWindow({actived: true});
3371  let mode = await window.getWindowMode();
3372}
3373```
3374
3375### isFocused<sup>9+</sup>
3376
3377isFocused(): Promise\<boolean>
3378
3379判断窗口是否处于获焦状态。
3380
3381**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3382
3383**系统能力**:SystemCapability.Test.UiTest
3384
3385**返回值:**
3386
3387| 类型              | 说明                                                         |
3388| ----------------- | ------------------------------------------------------------ |
3389| Promise\<boolean> | 以Promise形式返回窗口对象是否获取获焦状态,true:获焦,false:未获焦。 |
3390
3391**错误码:**
3392
3393以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3394
3395| 错误码ID | 错误信息                               |
3396| -------- | ---------------------------------------- |
3397| 17000002 | The async function is not called with await. |
3398| 17000004 | The window or component is invisible or destroyed.           |
3399
3400**示例:**
3401
3402```ts
3403import { Driver, UiWindow } from '@kit.TestKit';
3404async function demo() {
3405  let driver: Driver = Driver.create();
3406  let window: UiWindow = await driver.findWindow({actived: true});
3407  let focused = await window.isFocused();
3408}
3409```
3410
3411### isActived<sup>(deprecated)</sup>
3412
3413isActived(): Promise\<boolean>
3414
3415判断窗口是否为用户正在交互窗口,使用Promise异步回调。
3416
3417从API version 9开始支持,从API version 11开始废弃,建议使用[isActive<sup>11+</sup>](#isactive11)替代。
3418
3419**系统能力**:SystemCapability.Test.UiTest
3420
3421**返回值:**
3422
3423| 类型              | 说明                                                         |
3424| ----------------- | ------------------------------------------------------------ |
3425| Promise\<boolean> | 以Promise形式返回窗口对象是否为用户正在交互窗口,true表示是交互窗口,false表示非交互窗口。 |
3426
3427**错误码:**
3428
3429以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3430
3431| 错误码ID | 错误信息                               |
3432| -------- | ---------------------------------------- |
3433| 17000002 | The async function is not called with await. |
3434| 17000004 | The window or component is invisible or destroyed.           |
3435
3436**示例:**
3437
3438```ts
3439import { Driver, UiWindow } from '@kit.TestKit';
3440async function demo() {
3441  let driver: Driver = Driver.create();
3442  let window: UiWindow = await driver.findWindow({actived: true});
3443  let focused = await window.isActived();
3444}
3445```
3446
3447### focus<sup>9+</sup>
3448
3449focus(): Promise\<void>
3450
3451让窗口获焦。
3452
3453**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3454
3455**系统能力**:SystemCapability.Test.UiTest
3456
3457**错误码:**
3458
3459以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3460
3461| 错误码ID | 错误信息                               |
3462| -------- | ---------------------------------------- |
3463| 17000002 | The async function is not called with await. |
3464| 17000004 | The window or component is invisible or destroyed.           |
3465
3466**示例:**
3467
3468```ts
3469import { Driver, UiWindow } from '@kit.TestKit';
3470async function demo() {
3471  let driver: Driver = Driver.create();
3472  let window: UiWindow = await driver.findWindow({actived: true});
3473  await window.focus();
3474}
3475```
3476
3477### moveTo<sup>9+</sup>
3478
3479moveTo(x: number, y: number): Promise\<void>
3480
3481将窗口移动到目标点。适用于支持移动的窗口。
3482
3483**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3484
3485**系统能力**:SystemCapability.Test.UiTest
3486
3487**参数:**
3488
3489| 参数名 | 类型   | 必填 | 说明                                            |
3490| ------ | ------ | ---- | ----------------------------------------------- |
3491| x      | number | 是   | 以number的形式传入目标点的横坐标信息,取值大于等于0。 |
3492| y      | number | 是   | 以number的形式传入目标点的纵坐标信息,取值大于等于0。 |
3493
3494**错误码:**
3495
3496以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3497
3498| 错误码ID | 错误信息                               |
3499| -------- | ---------------------------------------- |
3500| 17000002 | The async function is not called with await. |
3501| 17000004 | The window or component is invisible or destroyed.           |
3502| 17000005 | This operation is not supported.         |
3503| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3504
3505**示例:**
3506
3507```ts
3508import { Driver, UiWindow } from '@kit.TestKit';
3509async function demo() {
3510  let driver: Driver = Driver.create();
3511  let window: UiWindow = await driver.findWindow({actived: true});
3512  await window.moveTo(100, 100);
3513}
3514```
3515
3516### resize<sup>9+</sup>
3517
3518resize(wide: number, height: number, direction: ResizeDirection): Promise\<void>
3519
3520根据传入的宽、高和调整方向来调整窗口的大小。适用于支持调整大小的窗口。
3521
3522**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3523
3524**系统能力**:SystemCapability.Test.UiTest
3525
3526**参数:**
3527
3528| 参数名    | 类型                                 | 必填 | 说明                                                         |
3529| --------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
3530| wide      | number                               | 是   | 以number的形式传入调整后窗口的宽度。                         |
3531| height    | number                               | 是   | 以number的形式传入调整后窗口的高度。                         |
3532| direction | [ResizeDirection](#resizedirection9) | 是   | 以[ResizeDirection](#resizedirection9)的形式传入窗口调整的方向。 |
3533
3534**错误码:**
3535
3536以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3537
3538| 错误码ID | 错误信息                               |
3539| -------- | ---------------------------------------- |
3540| 17000002 | The async function is not called with await. |
3541| 17000004 | The window or component is invisible or destroyed.           |
3542| 17000005 | This operation is not supported.         |
3543| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3544
3545**示例:**
3546
3547```ts
3548import { Driver, ResizeDirection, UiWindow } from '@kit.TestKit';
3549async function demo() {
3550  let driver: Driver = Driver.create();
3551  let window: UiWindow = await driver.findWindow({actived: true});
3552  await window.resize(100, 100, ResizeDirection.LEFT);
3553}
3554```
3555
3556### split<sup>9+</sup>
3557
3558split(): Promise\<void>
3559
3560将窗口模式切换成分屏模式。适用于支持切换分屏模式的窗口。
3561
3562**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3563
3564**系统能力**:SystemCapability.Test.UiTest
3565
3566**错误码:**
3567
3568以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3569
3570| 错误码ID | 错误信息                                 |
3571| -------- | ---------------------------------------- |
3572| 17000002 | The async function is not called with await. |
3573| 17000004 | The window or component is invisible or destroyed.         |
3574| 17000005 | This operation is not supported.         |
3575
3576**示例:**
3577
3578```ts
3579import { Driver, UiWindow } from '@kit.TestKit';
3580async function demo() {
3581  let driver: Driver = Driver.create();
3582  let window: UiWindow = await driver.findWindow({actived: true});
3583  await window.split();
3584}
3585```
3586
3587### maximize<sup>9+</sup>
3588
3589maximize(): Promise\<void>
3590
3591将窗口最大化。适用于支持窗口最大化操作的窗口。
3592
3593**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3594
3595**系统能力**:SystemCapability.Test.UiTest
3596
3597**错误码:**
3598
3599以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3600
3601| 错误码ID | 错误信息                               |
3602| -------- | ---------------------------------------- |
3603| 17000002 | The async function is not called with await. |
3604| 17000004 | The window or component is invisible or destroyed.           |
3605| 17000005 | This operation is not supported.         |
3606
3607**示例:**
3608
3609```ts
3610import { Driver, UiWindow } from '@kit.TestKit';
3611async function demo() {
3612  let driver: Driver = Driver.create();
3613  let window: UiWindow = await driver.findWindow({actived: true});
3614  await window.maximize();
3615}
3616```
3617
3618### minimize<sup>9+</sup>
3619
3620minimize(): Promise\<void>
3621
3622将窗口最小化。适用于支持窗口最小化操作的窗口。
3623
3624**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3625
3626**系统能力**:SystemCapability.Test.UiTest
3627
3628**错误码:**
3629
3630以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3631
3632| 错误码ID | 错误信息                               |
3633| -------- | ---------------------------------------- |
3634| 17000002 | The async function is not called with await. |
3635| 17000004 | The window or component is invisible or destroyed.          |
3636| 17000005 | This operation is not supported.         |
3637
3638**示例:**
3639
3640```ts
3641import { Driver, UiWindow } from '@kit.TestKit';
3642async function demo() {
3643  let driver: Driver = Driver.create();
3644  let window: UiWindow = await driver.findWindow({actived: true});
3645  await window.minimize();
3646}
3647```
3648
3649### resume<sup>9+</sup>
3650
3651resume(): Promise\<void>
3652
3653将窗口恢复到之前的窗口模式。
3654
3655**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3656
3657**系统能力**:SystemCapability.Test.UiTest
3658
3659**错误码:**
3660
3661以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3662
3663| 错误码ID | 错误信息                               |
3664| -------- | ---------------------------------------- |
3665| 17000002 | The async function is not called with await. |
3666| 17000004 | The window or component is invisible or destroyed.          |
3667| 17000005 | This operation is not supported.         |
3668
3669**示例:**
3670
3671```ts
3672import { Driver, UiWindow } from '@kit.TestKit';
3673async function demo() {
3674  let driver: Driver = Driver.create();
3675  let window: UiWindow = await driver.findWindow({actived: true});
3676  await window.resume();
3677}
3678```
3679
3680### close<sup>9+</sup>
3681
3682close(): Promise\<void>
3683
3684将窗口关闭。
3685
3686**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3687
3688**系统能力**:SystemCapability.Test.UiTest
3689
3690**错误码:**
3691
3692以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3693
3694| 错误码ID | 错误信息                               |
3695| -------- | ---------------------------------------- |
3696| 17000002 | The async function is not called with await. |
3697| 17000004 | The window or component is invisible or destroyed.           |
3698| 17000005 | This operation is not supported.         |
3699
3700**示例:**
3701
3702```ts
3703import { Driver, UiWindow } from '@kit.TestKit';
3704async function demo() {
3705  let driver:Driver = Driver.create();
3706  let window: UiWindow = await driver.findWindow({actived: true});
3707  await window.close();
3708}
3709```
3710
3711### isActive<sup>11+</sup>
3712
3713isActive(): Promise\<boolean>
3714
3715判断窗口是否为用户正在交互窗口。
3716
3717**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3718
3719**系统能力**:SystemCapability.Test.UiTest
3720
3721**返回值:**
3722
3723| 类型              | 说明                                                         |
3724| ----------------- | ------------------------------------------------------------ |
3725| Promise\<boolean> | 以Promise形式返回窗口对象是否为用户正在交互窗口,true:交互窗口,false:非交互窗口。 |
3726
3727**错误码:**
3728
3729以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
3730
3731| 错误码ID | 错误信息                                         |
3732| -------- | ------------------------------------------------ |
3733| 17000002 | The async function is not called with await. |
3734| 17000004 | The window or component is invisible or destroyed.         |
3735
3736**示例:**
3737
3738```ts
3739import { Driver, UiWindow } from '@kit.TestKit';
3740async function demo() {
3741  let driver: Driver = Driver.create();
3742  let window: UiWindow = await driver.findWindow({active: true});
3743  let focused = await window.isActive();
3744}
3745```
3746
3747## UIEventObserver<sup>10+</sup>
3748
3749UI事件监听器。
3750
3751### once('toastShow')
3752
3753once(type: 'toastShow', callback: Callback\<UIElementInfo>): void;
3754
3755开始监听toast控件出现的事件,使用callback的形式返回结果。
3756
3757**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3758
3759**系统能力**:SystemCapability.Test.UiTest
3760
3761**参数:**
3762
3763| 参数名   | 类型                                         | 必填 | 说明                              |
3764| -------- | -------------------------------------------- | ---- | --------------------------------- |
3765| type     | string                                       | 是   | 订阅的事件类型,取值为'toastShow'。 |
3766| callback | Callback\<[UIElementInfo](#uielementinfo10)> | 是   | 事件发生时执行的回调函数。          |
3767
3768**错误码:**
3769
3770以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3771
3772| 错误码ID | 错误信息                                                     |
3773| -------- | ------------------------------------------------------------ |
3774| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3775
3776**示例:**
3777
3778```ts
3779import { Driver, UIElementInfo, UIEventObserver } from '@kit.TestKit';
3780async function demo() {
3781  let driver: Driver = Driver.create();
3782  let observer:  UIEventObserver = await driver.createUIEventObserver()
3783  let  callback = (UIElementInfo: UIElementInfo)=>{
3784    console.info(UIElementInfo.bundleName)
3785    console.info(UIElementInfo.text)
3786    console.info(UIElementInfo.type)
3787  }
3788  observer.once('toastShow', callback)
3789}
3790```
3791
3792### once('dialogShow')
3793
3794once(type: 'dialogShow', callback: Callback\<UIElementInfo>): void;
3795
3796开始监听dialog控件出现的事件,使用callback的形式返回结果。
3797
3798**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
3799
3800**系统能力**:SystemCapability.Test.UiTest
3801
3802**参数:**
3803
3804| 参数名   | 类型                                         | 必填 | 说明                               |
3805| -------- | -------------------------------------------- | ---- | ---------------------------------- |
3806| type     | string                                       | 是   | 订阅的事件类型,取值为'dialogShow' |
3807| callback | Callback\<[UIElementInfo](#uielementinfo10)> | 是   | 事件发生时执行的回调函数           |
3808
3809**错误码:**
3810
3811以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3812
3813| 错误码ID | 错误信息                                                     |
3814| -------- | ------------------------------------------------------------ |
3815| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.|
3816
3817**示例:**
3818
3819```ts
3820import { Driver, UIElementInfo, UIEventObserver } from '@kit.TestKit';
3821async function demo() {
3822  let driver: Driver = Driver.create();
3823  let observer: UIEventObserver = await driver.createUIEventObserver()
3824  let  callback = (UIElementInfo: UIElementInfo)=>{
3825    console.info(UIElementInfo.bundleName)
3826    console.info(UIElementInfo.text)
3827    console.info(UIElementInfo.type)
3828  }
3829  observer.once('dialogShow', callback)
3830}
3831```
3832
3833## By<sup>(deprecated)</sup>
3834
3835UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br>
3836By提供的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对象。
3837
3838从API version 9开始不再维护,建议使用[On<sup>9+</sup>](#on9)。
3839
3840```ts
3841import { BY } from '@kit.TestKit';
3842BY.text('123').type('Button');
3843```
3844
3845### text<sup>(deprecated)</sup>
3846
3847text(txt: string, pattern?: MatchPattern): By
3848
3849指定目标控件文本属性,支持多种匹配模式,返回By对象自身。
3850
3851从API version 9开始不再维护,建议使用[text<sup>9+</sup>](#text9)。
3852
3853**系统能力**:SystemCapability.Test.UiTest
3854
3855**参数:**
3856
3857| 参数名  | 类型                          | 必填 | 说明                                                |
3858| ------- | ----------------------------- | ---- | --------------------------------------------------- |
3859| txt     | string                        | 是   | 指定控件文本,用于匹配目标控件文本。                |
3860| pattern | [MatchPattern](#matchpattern) | 否   | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 |
3861
3862**返回值:**
3863
3864| 类型                | 说明                               |
3865| ------------------- | ---------------------------------- |
3866| [By](#bydeprecated) | 返回指定目标控件文本属性的By对象。 |
3867
3868**示例:**
3869
3870```ts
3871import { BY, By } from '@kit.TestKit';
3872let by: By = BY.text('123'); // 使用静态构造器BY创建by对象,指定目标控件的text属性。
3873```
3874
3875
3876### key<sup>(deprecated)</sup>
3877
3878key(key: string): By
3879
3880指定目标控件key值属性,返回By对象自身。
3881
3882从API version 9开始不再维护,建议使用[id<sup>9+</sup>](#id9)。
3883
3884**系统能力**:SystemCapability.Test.UiTest
3885
3886**参数:**
3887
3888| 参数名 | 类型   | 必填 | 说明              |
3889| ------ | ------ | ---- | ----------------- |
3890| key    | string | 是   | 指定控件的Key值。 |
3891
3892**返回值:**
3893
3894| 类型                | 说明                                |
3895| ------------------- | ----------------------------------- |
3896| [By](#bydeprecated) | 返回指定目标控件key值属性的By对象。 |
3897
3898**示例:**
3899
3900```ts
3901import { By, BY } from '@kit.TestKit';
3902let by: By = BY.key('123'); // 使用静态构造器BY创建by对象,指定目标控件的key值属性。
3903```
3904
3905
3906### id<sup>(deprecated)</sup>
3907
3908id(id: number): By
3909
3910指定目标控件id属性,返回By对象自身。
3911
3912从API version 9开始废弃。
3913
3914**系统能力**:SystemCapability.Test.UiTest
3915
3916**参数:**
3917
3918| 参数名 | 类型   | 必填 | 说明             |
3919| ------ | ------ | ---- | ---------------- |
3920| id     | number | 是   | 指定控件的id值。 |
3921
3922**返回值:**
3923
3924| 类型                | 说明                             |
3925| ------------------- | -------------------------------- |
3926| [By](#bydeprecated) | 返回指定目标控件id属性的By对象。 |
3927
3928**示例:**
3929
3930```ts
3931import { By, BY } from '@kit.TestKit';
3932let by: By = BY.id(123); // 使用静态构造器BY创建by对象,指定目标控件的id属性。
3933```
3934
3935
3936### type<sup>(deprecated)</sup>
3937
3938type(tp: string): By
3939
3940指定目标控件的控件类型属性,返回By对象自身。
3941
3942从API version 9开始不再维护,建议使用[type<sup>9+</sup>](#type9)。
3943
3944**系统能力**:SystemCapability.Test.UiTest
3945
3946**参数:**
3947
3948| 参数名 | 类型   | 必填 | 说明           |
3949| ------ | ------ | ---- | -------------- |
3950| tp     | string | 是   | 指定控件类型。 |
3951
3952**返回值:**
3953
3954| 类型                | 说明                                     |
3955| ------------------- | ---------------------------------------- |
3956| [By](#bydeprecated) | 返回指定目标控件的控件类型属性的By对象。 |
3957
3958**示例:**
3959
3960```ts
3961import { By, BY } from '@kit.TestKit';
3962let by: By = BY.type('Button'); // 使用静态构造器BY创建by对象,指定目标控件的控件类型属性。
3963```
3964
3965
3966### clickable<sup>(deprecated)</sup>
3967
3968clickable(b?: boolean): By
3969
3970指定目标控件的可点击状态属性,返回By对象自身。
3971
3972从API version 9开始不再维护,建议使用[clickable<sup>9+</sup>](#clickable9)。
3973
3974**系统能力**:SystemCapability.Test.UiTest
3975
3976**参数:**
3977
3978| 参数名 | 类型    | 必填 | 说明                                                         |
3979| ------ | ------- | ---- | ------------------------------------------------------------ |
3980| b      | boolean | 否   | 指定控件可点击状态,true:可点击,false:不可点击。默认为true。 |
3981
3982**返回值:**
3983
3984| 类型                | 说明                                       |
3985| ------------------- | ------------------------------------------ |
3986| [By](#bydeprecated) | 返回指定目标控件的可点击状态属性的By对象。 |
3987
3988**示例:**
3989
3990```ts
3991import { By, BY } from '@kit.TestKit';
3992let by: By = BY.clickable(true); // 使用静态构造器BY创建by对象,指定目标控件的可点击状态属性。
3993```
3994
3995
3996### scrollable<sup>(deprecated)</sup>
3997
3998scrollable(b?: boolean): By
3999
4000指定目标控件的可滑动状态属性,返回By对象自身。
4001
4002从API version 9开始不再维护,建议使用[scrollable<sup>9+</sup>](#scrollable9)。
4003
4004**系统能力**:SystemCapability.Test.UiTest
4005
4006**参数:**
4007
4008| 参数名 | 类型    | 必填 | 说明                                                        |
4009| ------ | ------- | ---- | ----------------------------------------------------------- |
4010| b      | boolean | 否   | 控件可滑动状态,true:可滑动,false:不可滑动。默认为true。 |
4011
4012**返回值:**
4013
4014| 类型                | 说明                                       |
4015| ------------------- | ------------------------------------------ |
4016| [By](#bydeprecated) | 返回指定目标控件的可滑动状态属性的By对象。 |
4017
4018**示例:**
4019
4020```ts
4021import { By, BY } from '@kit.TestKit';
4022let by: By = BY.scrollable(true); // 使用静态构造器BY创建by对象,指定目标控件的可滑动状态属性。
4023```
4024
4025### enabled<sup>(deprecated)</sup>
4026
4027enabled(b?: boolean): By
4028
4029指定目标控件的使能状态属性,返回By对象自身。
4030
4031从API version 9开始不再维护,建议使用[enabled<sup>9+</sup>](#enabled9)。
4032
4033**系统能力**:SystemCapability.Test.UiTest
4034
4035**参数:**
4036
4037| 参数名 | 类型    | 必填 | 说明                                                      |
4038| ------ | ------- | ---- | --------------------------------------------------------- |
4039| b      | boolean | 否   | 指定控件使能状态,true:使能,false:未使能。默认为true。 |
4040
4041**返回值:**
4042
4043| 类型                | 说明                                     |
4044| ------------------- | ---------------------------------------- |
4045| [By](#bydeprecated) | 返回指定目标控件的使能状态属性的By对象。 |
4046
4047**示例:**
4048
4049```ts
4050import { By, BY } from '@kit.TestKit';
4051let by: By = BY.enabled(true); // 使用静态构造器BY创建by对象,指定目标控件的使能状态属性。
4052```
4053
4054### focused<sup>(deprecated)</sup>
4055
4056focused(b?: boolean): By
4057
4058指定目标控件的获焦状态属性,返回By对象自身。
4059
4060从API version 9开始不再维护,建议使用[focused<sup>9+</sup>](#focused9)。
4061
4062**系统能力**:SystemCapability.Test.UiTest
4063
4064**参数:**
4065
4066| 参数名 | 类型    | 必填 | 说明                                                  |
4067| ------ | ------- | ---- | ----------------------------------------------------- |
4068| b      | boolean | 否   | 控件获焦状态,true:获焦,false:未获焦。默认为true。 |
4069
4070**返回值:**
4071
4072| 类型                | 说明                                     |
4073| ------------------- | ---------------------------------------- |
4074| [By](#bydeprecated) | 返回指定目标控件的获焦状态属性的By对象。 |
4075
4076**示例:**
4077
4078```ts
4079import { By, BY } from '@kit.TestKit';
4080let by: By = BY.focused(true); // 使用静态构造器BY创建by对象,指定目标控件的获焦状态属性。
4081```
4082
4083### selected<sup>(deprecated)</sup>
4084
4085selected(b?: boolean): By
4086
4087指定目标控件的被选中状态属性,返回By对象自身。
4088
4089从API version 9开始不再维护,建议使用[selected<sup>9+</sup>](#selected9)。
4090
4091**系统能力**:SystemCapability.Test.UiTest
4092
4093**参数:**
4094
4095| 参数名 | 类型    | 必填 | 说明                                                         |
4096| ------ | ------- | ---- | ------------------------------------------------------------ |
4097| b      | boolean | 否   | 指定控件被选中状态,true:被选中,false:未被选中。默认为true。 |
4098
4099**返回值:**
4100
4101| 类型                | 说明                                       |
4102| ------------------- | ------------------------------------------ |
4103| [By](#bydeprecated) | 返回指定目标控件的被选中状态属性的By对象。 |
4104
4105**示例:**
4106
4107```ts
4108import { By, BY } from '@kit.TestKit';
4109let by: By = BY.selected(true); // 使用静态构造器BY创建by对象,指定目标控件的被选中状态属性。
4110```
4111
4112### isBefore<sup>(deprecated)</sup>
4113
4114isBefore(by: By): By
4115
4116指定目标控件位于给出的特征属性控件之前,返回By对象自身。
4117
4118从API version 9开始不再维护,建议使用[isBefore<sup>9+</sup>](#isbefore9)。
4119
4120**系统能力**:SystemCapability.Test.UiTest
4121
4122**参数:**
4123
4124| 参数名 | 类型                | 必填 | 说明             |
4125| ------ | ------------------- | ---- | ---------------- |
4126| by     | [By](#bydeprecated) | 是   | 特征控件的属性。 |
4127
4128**返回值:**
4129
4130| 类型                | 说明                                                 |
4131| ------------------- | ---------------------------------------------------- |
4132| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之前的By对象。 |
4133
4134**示例:**
4135
4136```ts
4137import { By, BY } from '@kit.TestKit';
4138
4139// 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之前。
4140let by: By = BY.type('Button').isBefore(BY.text('123')); // 查找text为123之前的第一个Button组件
4141```
4142
4143### isAfter<sup>(deprecated)</sup>
4144
4145isAfter(by: By): By
4146
4147指定目标控件位于给出的特征属性控件之后,返回By对象自身。
4148
4149从API version 9开始不再维护,建议使用[isAfter<sup>9+</sup>](#isafter9)。
4150
4151**系统能力**:SystemCapability.Test.UiTest
4152
4153**参数:**
4154
4155| 参数名 | 类型                | 必填 | 说明             |
4156| ------ | ------------------- | ---- | ---------------- |
4157| by     | [By](#bydeprecated) | 是   | 特征控件的属性。 |
4158
4159**返回值:**
4160
4161| 类型                | 说明                                                 |
4162| ------------------- | ---------------------------------------------------- |
4163| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之后的By对象。 |
4164
4165**示例:**
4166
4167```ts
4168import { By, BY } from '@kit.TestKit';
4169
4170// 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之后。
4171let by: By = BY.type('Text').isAfter(BY.text('123')); // 查找 text为123之后的第一个Text组件
4172```
4173
4174## UiComponent<sup>(deprecated)</sup>
4175
4176UiTest中,UiComponent类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。
4177该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。
4178
4179从API version 9开始不再维护,建议使用[Component<sup>9+</sup>](#component9)。
4180
4181### click<sup>(deprecated)</sup>
4182
4183click(): Promise\<void>
4184
4185控件对象进行点击操作。
4186
4187从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。
4188
4189**系统能力**:SystemCapability.Test.UiTest
4190
4191**示例:**
4192
4193```ts
4194import { UiDriver, BY, Driver, UiComponent } from '@kit.TestKit';
4195async function demo() {
4196  let driver: UiDriver = UiDriver.create();
4197  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4198  await button.click();
4199}
4200```
4201
4202### doubleClick<sup>(deprecated)</sup>
4203
4204doubleClick(): Promise\<void>
4205
4206控件对象进行双击操作。
4207
4208从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。
4209
4210**系统能力**:SystemCapability.Test.UiTest
4211
4212**示例:**
4213
4214```ts
4215import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4216async function demo() {
4217  let driver: UiDriver = UiDriver.create();
4218  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4219  await button.doubleClick();
4220}
4221```
4222
4223### longClick<sup>(deprecated)</sup>
4224
4225longClick(): Promise\<void>
4226
4227控件对象进行长按操作。
4228
4229从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。
4230
4231**系统能力**:SystemCapability.Test.UiTest
4232
4233**示例:**
4234
4235```ts
4236import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4237async function demo() {
4238  let driver: UiDriver = UiDriver.create();
4239  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4240  await button.longClick();
4241}
4242```
4243
4244### getId<sup>(deprecated)</sup>
4245
4246getId(): Promise\<number>
4247
4248获取控件对象的id值。
4249
4250从API version 9开始不再维护,被废弃。
4251
4252**系统能力**:SystemCapability.Test.UiTest
4253
4254**返回值:**
4255
4256| 类型             | 说明                            |
4257| ---------------- | ------------------------------- |
4258| Promise\<number> | 以Promise形式返回的控件的id值。 |
4259
4260**示例:**
4261
4262```ts
4263import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4264async function demo() {
4265  let driver: UiDriver = UiDriver.create();
4266  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4267  let id = await button.getId();
4268}
4269```
4270
4271### getKey<sup>(deprecated)</sup>
4272
4273getKey(): Promise\<string>
4274
4275获取控件对象的key值。
4276
4277从API version 9开始不再维护,建议使用[getId<sup>9+</sup>](#getid9)
4278
4279**系统能力**:SystemCapability.Test.UiTest
4280
4281**返回值:**
4282
4283| 类型             | 说明                           |
4284| ---------------- | ------------------------------ |
4285| Promise\<string> | 以Promise形式返回控件的key值。 |
4286
4287**示例:**
4288
4289```ts
4290import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4291async function demo() {
4292  let driver: UiDriver = UiDriver.create();
4293  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4294  let str_key = await button.getKey();
4295}
4296```
4297
4298### getText<sup>(deprecated)</sup>
4299
4300getText(): Promise\<string>
4301
4302获取控件对象的文本信息。
4303
4304从API version 9开始不再维护,建议使用[getText<sup>9+</sup>](#gettext9)。
4305
4306**系统能力**:SystemCapability.Test.UiTest
4307
4308**返回值:**
4309
4310| 类型             | 说明                              |
4311| ---------------- | --------------------------------- |
4312| Promise\<string> | 以Promise形式返回控件的文本信息。 |
4313
4314**示例:**
4315
4316```ts
4317import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4318async function demo() {
4319  let driver: UiDriver = UiDriver.create();
4320  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4321  let text = await button.getText();
4322}
4323```
4324
4325### getType<sup>(deprecated)</sup>
4326
4327getType(): Promise\<string>
4328
4329获取控件对象的控件类型。
4330
4331从API version 9开始不再维护,建议使用[getType<sup>9+</sup>](#gettype9)。
4332
4333**系统能力**:SystemCapability.Test.UiTest
4334
4335**返回值:**
4336
4337| 类型             | 说明                          |
4338| ---------------- | ----------------------------- |
4339| Promise\<string> | 以Promise形式返回控件的类型。 |
4340
4341**示例:**
4342
4343```ts
4344import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4345async function demo() {
4346  let driver: UiDriver = UiDriver.create();
4347  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4348  let type = await button.getType();
4349}
4350```
4351
4352### isClickable<sup>(deprecated)</sup>
4353
4354isClickable(): Promise\<boolean>
4355
4356获取控件对象可点击状态。
4357
4358从API version 9开始不再维护,建议使用[isClickable<sup>9+</sup>](#isclickable9)。
4359
4360**系统能力**:SystemCapability.Test.UiTest
4361
4362**返回值:**
4363
4364| 类型              | 说明                                                         |
4365| ----------------- | ------------------------------------------------------------ |
4366| Promise\<boolean> | 以Promise形式返回控件对象可点击状态,true:可点击,false:不可点击。 |
4367
4368**示例:**
4369
4370```ts
4371import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4372async function demo() {
4373  let driver: UiDriver = UiDriver.create();
4374  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4375  if(await button.isClickable()) {
4376    console.info('This button can be Clicked');
4377  } else {
4378    console.info('This button can not be Clicked');
4379  }
4380}
4381```
4382
4383### isScrollable<sup>(deprecated)</sup>
4384
4385isScrollable(): Promise\<boolean>
4386
4387获取控件对象可滑动状态。
4388
4389从API version 9开始不再维护,建议使用[isScrollable<sup>9+</sup>](#isscrollable9)。
4390
4391**系统能力**:SystemCapability.Test.UiTest
4392
4393**返回值:**
4394
4395| 类型              | 说明                                                         |
4396| ----------------- | ------------------------------------------------------------ |
4397| Promise\<boolean> | 以Promise形式返回控件对象可滑动状态,true:可滑动,false:不可滑动。 |
4398
4399**示例:**
4400
4401```ts
4402import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4403async function demo() {
4404  let driver: UiDriver = UiDriver.create();
4405  let scrollBar: UiComponent = await driver.findComponent(BY.scrollable(true));
4406  if(await scrollBar.isScrollable()) {
4407    console.info('This scrollBar can be operated');
4408  } else {
4409    console.info('This scrollBar can not be operated');
4410  }
4411}
4412```
4413
4414
4415### isEnabled<sup>(deprecated)</sup>
4416
4417isEnabled(): Promise\<boolean>
4418
4419获取控件使能状态。
4420
4421从API version 9开始不再维护,建议使用[isEnabled<sup>9+</sup>](#isenabled9)。
4422
4423**系统能力**:SystemCapability.Test.UiTest
4424
4425**返回值:**
4426
4427| 类型              | 说明                                                       |
4428| ----------------- | ---------------------------------------------------------- |
4429| Promise\<boolean> | 以Promise形式返回控件使能状态,true:使能,false:未使能。 |
4430
4431**示例:**
4432
4433```ts
4434import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4435async function demo() {
4436  let driver: UiDriver = UiDriver.create();
4437  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4438  if(await button.isEnabled()) {
4439    console.info('This button can be operated');
4440  } else {
4441    console.info('This button can not be operated');
4442  }
4443}
4444
4445```
4446
4447### isFocused<sup>(deprecated)</sup>
4448
4449isFocused(): Promise\<boolean>
4450
4451判断控件对象是否获焦。
4452
4453从API version 9开始不再维护,建议使用[isFocused<sup>9+</sup>](#isfocused9)。
4454
4455**系统能力**:SystemCapability.Test.UiTest
4456
4457**返回值:**
4458
4459| 类型              | 说明                                                         |
4460| ----------------- | ------------------------------------------------------------ |
4461| Promise\<boolean> | 以Promise形式返回控件对象是否获焦,true:获焦,false:未获焦。 |
4462
4463**示例:**
4464
4465```ts
4466import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4467async function demo() {
4468  let driver: UiDriver = UiDriver.create();
4469  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4470  if(await button.isFocused()) {
4471    console.info('This button is focused');
4472  } else {
4473    console.info('This button is not focused');
4474  }
4475}
4476```
4477
4478### isSelected<sup>(deprecated)</sup>
4479
4480isSelected(): Promise\<boolean>
4481
4482获取控件对象被选中状态。
4483
4484从API version 9开始不再维护,建议使用[isSelected<sup>9+</sup>](#isselected9)。
4485
4486**系统能力**:SystemCapability.Test.UiTest
4487
4488**返回值:**
4489
4490| 类型              | 说明                                                  |
4491| ----------------- | ----------------------------------------------------- |
4492| Promise\<boolean> | 以Promise形式返回控件对象被选中的状态,true:被选中,false:未被选中。 |
4493
4494**示例:**
4495
4496```ts
4497import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4498async function demo() {
4499  let driver: UiDriver = UiDriver.create();
4500  let button: UiComponent = await driver.findComponent(BY.type('Button'));
4501  if(await button.isSelected()) {
4502    console.info('This button is selected');
4503  } else {
4504    console.info('This button is not selected');
4505  }
4506}
4507```
4508
4509### inputText<sup>(deprecated)</sup>
4510
4511inputText(text: string): Promise\<void>
4512
4513向控件中输入文本(适用于文本框控件)。
4514
4515从API version 9开始不再维护,建议使用[inputText<sup>9+</sup>](#inputtext9)。
4516
4517**系统能力**:SystemCapability.Test.UiTest
4518
4519**参数:**
4520
4521| 参数名 | 类型   | 必填 | 说明             |
4522| ------ | ------ | ---- | ---------------- |
4523| text   | string | 是   | 输入的文本信息。 |
4524
4525**示例:**
4526
4527```ts
4528import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4529async function demo() {
4530  let driver: UiDriver = UiDriver.create();
4531  let text: UiComponent = await driver.findComponent(BY.text('hello world'));
4532  await text.inputText('123');
4533}
4534```
4535
4536### scrollSearch<sup>(deprecated)</sup>
4537
4538scrollSearch(by: By): Promise\<UiComponent>
4539
4540在控件上滑动查找目标控件(适用于List等支持滑动的控件)。
4541
4542从API version 9开始不再维护,建议使用[scrollSearch<sup>9+</sup>](#scrollsearch9)。
4543
4544**系统能力**:SystemCapability.Test.UiTest
4545
4546**参数:**
4547
4548| 参数名 | 类型                | 必填 | 说明                 |
4549| ------ | ------------------- | ---- | -------------------- |
4550| by     | [By](#bydeprecated) | 是   | 目标控件的属性要求。 |
4551
4552**返回值:**
4553
4554| 类型                                            | 说明                                  |
4555| ----------------------------------------------- | ------------------------------------- |
4556| Promise\<[UiComponent](#uicomponentdeprecated)> | 以Promise形式返回找到的目标控件对象。 |
4557
4558**示例:**
4559
4560```ts
4561import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4562async function demo() {
4563  let driver: UiDriver = UiDriver.create();
4564  let scrollBar: UiComponent = await driver.findComponent(BY.type('Scroll'));
4565  let button = await scrollBar.scrollSearch(BY.text('next page'));
4566}
4567```
4568
4569## UiDriver<sup>(deprecated)</sup>
4570
4571UiDriver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等API。
4572该类提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await调用。
4573
4574从API version 9开始不再维护,建议使用[Driver<sup>9+</sup>](#driver9)。
4575
4576### create<sup>(deprecated)</sup>
4577
4578static create(): UiDriver
4579
4580静态方法,构造一个UiDriver对象,并返回该对象。
4581
4582从API version 9开始不再维护,建议使用[create<sup>9+</sup>](#create9)。
4583
4584**系统能力**:SystemCapability.Test.UiTest
4585
4586**返回值:**
4587
4588| 类型     | 说明                     |
4589| -------- | ------------------------ |
4590| UiDriver | 返回构造的UiDriver对象。 |
4591
4592**示例:**
4593
4594```ts
4595import { UiDriver } from '@kit.TestKit';
4596async function demo() {
4597  let driver: UiDriver = UiDriver.create();
4598}
4599```
4600
4601### delayMs<sup>(deprecated)</sup>
4602
4603delayMs(duration: number): Promise\<void>
4604
4605UiDriver对象在给定的时间内延时。
4606
4607从API version 9开始不再维护,建议使用[delayMs<sup>9+</sup>](#delayms9)。
4608
4609**系统能力**:SystemCapability.Test.UiTest
4610
4611**参数:**
4612
4613| 参数名   | 类型   | 必填 | 说明         |
4614| -------- | ------ | ---- | ------------ |
4615| duration | number | 是   | 给定的时间。 |
4616
4617**示例:**
4618
4619```ts
4620import { UiDriver } from '@kit.TestKit';
4621async function demo() {
4622  let driver: UiDriver = UiDriver.create();
4623  await driver.delayMs(1000);
4624}
4625```
4626
4627### findComponent<sup>(deprecated)</sup>
4628
4629findComponent(by: By): Promise\<UiComponent>
4630
4631在UiDriver对象中,根据给出的目标控件属性要求查找目标控件。
4632
4633从API version 9开始不再维护,建议使用[findComponent<sup>9+</sup>](#findcomponent9)。
4634
4635**系统能力**:SystemCapability.Test.UiTest
4636
4637**参数:**
4638
4639| 参数名 | 类型                | 必填 | 说明                 |
4640| ------ | ------------------- | ---- | -------------------- |
4641| by     | [By](#bydeprecated) | 是   | 目标控件的属性要求。 |
4642
4643**返回值:**
4644
4645| 类型                                            | 说明                              |
4646| ----------------------------------------------- | --------------------------------- |
4647| Promise\<[UiComponent](#uicomponentdeprecated)> | 以Promise形式返回找到的控件对象。 |
4648
4649**示例:**
4650
4651```ts
4652import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4653async function demo() {
4654  let driver: UiDriver = UiDriver.create();
4655  let button: UiComponent = await driver.findComponent(BY.text('next page'));
4656}
4657```
4658
4659### findComponents<sup>(deprecated)</sup>
4660
4661findComponents(by: By): Promise\<Array\<UiComponent>>
4662
4663在UiDriver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。
4664
4665从API version 9开始不再维护,建议使用[findComponents<sup>9+</sup>](#findcomponents9)。
4666
4667**系统能力**:SystemCapability.Test.UiTest
4668
4669**参数:**
4670
4671| 参数名 | 类型                | 必填 | 说明                 |
4672| ------ | ------------------- | ---- | -------------------- |
4673| by     | [By](#bydeprecated) | 是   | 目标控件的属性要求。 |
4674
4675**返回值:**
4676
4677| 类型                                                    | 说明                                    |
4678| ------------------------------------------------------- | --------------------------------------- |
4679| Promise\<Array\<[UiComponent](#uicomponentdeprecated)>> | 以Promise形式返回找到的控件对象的列表。 |
4680
4681**示例:**
4682
4683```ts
4684import { UiDriver, BY, UiComponent } from '@kit.TestKit';
4685async function demo() {
4686  let driver: UiDriver = UiDriver.create();
4687  let buttonList: Array<UiComponent> = await driver.findComponents(BY.text('next page'));
4688}
4689```
4690
4691### assertComponentExist<sup>(deprecated)</sup>
4692
4693assertComponentExist(by: By): Promise\<void>
4694
4695断言API,用于断言当前界面存在满足给出的目标控件属性的控件; 如果控件不存在,该API将抛出JS异常,使当前测试用例失败。
4696
4697从API version 9开始不再维护,建议使用[assertComponentExist<sup>9+</sup>](#assertcomponentexist9)。
4698
4699**系统能力**:SystemCapability.Test.UiTest
4700
4701**参数:**
4702
4703| 参数名 | 类型                | 必填 | 说明                 |
4704| ------ | ------------------- | ---- | -------------------- |
4705| by     | [By](#bydeprecated) | 是   | 目标控件的属性要求。 |
4706
4707**错误码:**
4708
4709以下错误码的详细介绍请参见[uitest测试框架错误码](errorcode-uitest.md)。
4710
4711| 错误码ID | 错误信息                                         |
4712| -------- | ------------------------------------------------ |
4713| 401      | if the input parameters are invalid.             |
4714| 17000002 | if the async function was not called with await. |
4715| 17000003 | if the assertion failed.                         |
4716
4717**示例:**
4718
4719```ts
4720import { UiDriver, BY } from '@kit.TestKit';
4721async function demo() {
4722  let driver: UiDriver = UiDriver.create();
4723  await driver.assertComponentExist(BY.text('next page'));
4724}
4725```
4726
4727### pressBack<sup>(deprecated)</sup>
4728
4729pressBack(): Promise\<void>
4730
4731UiDriver对象进行点击BACK键的操作。
4732
4733从API version 9开始不再维护,建议使用[pressBack<sup>9+</sup>](#pressback9)。
4734
4735**系统能力**:SystemCapability.Test.UiTest
4736
4737**示例:**
4738
4739```ts
4740import { UiDriver } from '@kit.TestKit';
4741async function demo() {
4742  let driver: UiDriver = UiDriver.create();
4743  await driver.pressBack();
4744}
4745```
4746
4747### triggerKey<sup>(deprecated)</sup>
4748
4749triggerKey(keyCode: number): Promise\<void>
4750
4751UiDriver对象采取如下操作:通过key值找到对应键并点击。
4752
4753从API version 9开始不再维护,建议使用[triggerKey<sup>9+</sup>](#triggerkey9)。
4754
4755**系统能力**:SystemCapability.Test.UiTest
4756
4757**参数:**
4758
4759| 参数名  | 类型   | 必填 | 说明          |
4760| ------- | ------ | ---- | ------------- |
4761| keyCode | number | 是   | 指定的key值。 |
4762
4763**示例:**
4764
4765```ts
4766import { Driver, UiDriver } from '@kit.TestKit';
4767async function demo() {
4768  let driver: UiDriver = UiDriver.create();
4769  await driver.triggerKey(123);
4770}
4771```
4772
4773
4774### click<sup>(deprecated)</sup>
4775
4776click(x: number, y: number): Promise\<void>
4777
4778UiDriver对象采取如下操作:在目标坐标点单击。
4779
4780从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。
4781
4782**系统能力**:SystemCapability.Test.UiTest
4783
4784**参数:**
4785
4786| 参数名 | 类型   | 必填 | 说明                                   |
4787| ------ | ------ | ---- | -------------------------------------- |
4788| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
4789| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
4790
4791**示例:**
4792
4793```ts
4794import { UiDriver } from '@kit.TestKit';
4795async function demo() {
4796  let driver: UiDriver = UiDriver.create();
4797  await driver.click(100,100);
4798}
4799```
4800
4801### doubleClick<sup>(deprecated)</sup>
4802
4803doubleClick(x: number, y: number): Promise\<void>
4804
4805UiDriver对象采取如下操作:在目标坐标点双击。
4806
4807从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。
4808
4809**系统能力**:SystemCapability.Test.UiTest
4810
4811**参数:**
4812
4813| 参数名 | 类型   | 必填 | 说明                                   |
4814| ------ | ------ | ---- | -------------------------------------- |
4815| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
4816| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
4817
4818**示例:**
4819
4820```ts
4821import { UiDriver } from '@kit.TestKit';
4822async function demo() {
4823  let driver: UiDriver = UiDriver.create();
4824  await driver.doubleClick(100,100);
4825}
4826```
4827
4828### longClick<sup>(deprecated)</sup>
4829
4830longClick(x: number, y: number): Promise\<void>
4831
4832UiDriver对象采取如下操作:在目标坐标点长按下鼠标左键。
4833
4834从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。
4835
4836**系统能力**:SystemCapability.Test.UiTest
4837
4838**参数:**
4839
4840| 参数名 | 类型   | 必填 | 说明                                   |
4841| ------ | ------ | ---- | -------------------------------------- |
4842| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
4843| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
4844
4845**示例:**
4846
4847```ts
4848import { UiDriver } from '@kit.TestKit';
4849async function demo() {
4850  let driver: UiDriver = UiDriver.create();
4851  await driver.longClick(100,100);
4852}
4853```
4854
4855### swipe<sup>(deprecated)</sup>
4856
4857swipe(startx: number, starty: number, endx: number, endy: number): Promise\<void>
4858
4859UiDriver对象采取如下操作:从给出的起始坐标点滑向给出的目的坐标点。
4860
4861从API version 9开始不再维护,建议使用[swipe<sup>9+</sup>](#swipe9)。
4862
4863**系统能力**:SystemCapability.Test.UiTest
4864
4865**参数:**
4866
4867| 参数名 | 类型   | 必填 | 说明                                   |
4868| ------ | ------ | ---- | -------------------------------------- |
4869| startx | number | 是   | 以number的形式传入起始点的横坐标信息。 |
4870| starty | number | 是   | 以number的形式传入起始点的纵坐标信息。 |
4871| endx   | number | 是   | 以number的形式传入目的点的横坐标信息。 |
4872| endy   | number | 是   | 以number的形式传入目的点的纵坐标信息。 |
4873
4874**示例:**
4875
4876```ts
4877import { UiDriver } from '@kit.TestKit';
4878async function demo() {
4879  let driver: UiDriver = UiDriver.create();
4880  await driver.swipe(100,100,200,200);
4881}
4882```
4883
4884### screenCap<sup>(deprecated)</sup>
4885
4886screenCap(savePath: string): Promise\<boolean>
4887
4888UiDriver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。
4889
4890从API version 9开始不再维护,建议使用[screenCap<sup>9+</sup>](#screencap9)。
4891
4892**系统能力**:SystemCapability.Test.UiTest
4893
4894**参数:**
4895
4896| 参数名   | 类型   | 必填 | 说明           |
4897| -------- | ------ | ---- | -------------- |
4898| savePath | string | 是   | 文件保存路径。 |
4899
4900**返回值:**
4901
4902| 类型              | 说明                                   |
4903| ----------------- | -------------------------------------- |
4904| Promise\<boolean> | 以Promise形式返回截图操作是否成功完成。成功完成为true。 |
4905
4906**示例:**
4907
4908```ts
4909import { UiDriver } from '@kit.TestKit';
4910async function demo() {
4911  let driver: UiDriver = UiDriver.create();
4912  await driver.screenCap('/data/storage/el2/base/cache/1.png');
4913}
4914```