js-apis-uitest.md 44.6 KB
Newer Older
1 2
# UiTest

R
ry 已提交
3 4 5 6
UiTest提供模拟UI操作的能力,供开发者在测试场景使用,主要支持如点击、双击、长按、滑动等UI操作能力。

该模块提供以下功能:

R
modify  
ry 已提交
7
- [By](#by):提供控件特征描述能力,用于控件筛选匹配查找。
R
modify  
ry 已提交
8
- [UiComponent](#uicomponent):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。
R
modify  
ry 已提交
9
- [UiDriver](#uidriver):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能能力。
10
- [UiWINDOW<sup>9+</sup>](#uiwindow9):入口类,提供窗口属性获取,窗口拖动、调整窗口大小等能能力。
R
ry 已提交
11

12 13 14 15 16 17 18 19
>**说明:**
>
>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块 

```
20
import {UiDriver, BY, MatchPattern, ResizeDirection, WindowMode} from '@ohos.uitest'
21 22 23 24
```

## By

R
ry 已提交
25
UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br>
26
By提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[By.isBefore](#byisbefore)[By.isAfter](#byisafter)等API限定邻近控件特征进行辅助定位。<br>By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。
27 28 29 30

```js
BY.text('123').type('button')
```
31

32
### text
33

34
text(txt: string, pattern?: MatchPattern): By
35 36 37 38 39 40 41

指定目标控件文本属性,支持多种匹配模式,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

42 43 44 45
| 参数名  | 类型         | 必填 | 说明                                              |
| ------- | ------------ | ---- | ------------------------------------------------- |
| txt     | string       | 是   | 指定控件文本,用于匹配目标控件文本。              |
| pattern | MatchPattern | 否   | 指定的文本匹配模式,默认为[EQUALS](#matchpattern) |
46 47 48 49 50 51 52 53 54

**返回值:**

| 类型 | 说明           |
| ---- | -------------- |
| By   | 返回By对象自身 |

**示例:**

55 56
```js
let by = BY.text('123') //使用静态构造器BY创建by对象,指定目标控件的text属性。
57 58 59
```


60
### key
61

62
key(key: string): By
63 64 65 66 67 68 69

指定目标控件key值属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

70 71 72
| 参数名 | 类型   | 必填 | 说明              |
| ------ | ------ | ---- | ----------------- |
| key    | string | 是   | 指定控件的Key值。 |
73 74 75

**返回值:**

76 77 78
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
79 80 81

**示例:**

82 83
```js
let by = BY.key('123') //使用静态构造器BY创建by对象,指定目标控件的key值属性。
84 85 86
```


87
### id
88

89
id(id: number): By
90 91 92 93 94 95 96

指定目标控件id属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

97 98 99
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| id     | number | 是   | 指定控件的id值。 |
100 101 102

**返回值:**

103 104 105
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
106 107 108

**示例:**

109 110
```js
let by = BY.id(123) //使用静态构造器BY创建by对象,指定目标控件的id属性。
111 112 113
```


114
### type
115

116
type(tp: string): By
117 118 119 120 121 122 123

指定目标控件的控件类型属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

124 125 126
| 参数名 | 类型   | 必填 | 说明           |
| ------ | ------ | ---- | -------------- |
| tp     | string | 是   | 指定控件类型。 |
127 128 129

**返回值:**

130 131 132
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
133 134 135

**示例:**

136 137
```js
let by = BY.type('button') //使用静态构造器BY创建by对象,指定目标控件的控件类型属性。
138 139 140
```


141
### clickable
142

143
clickable(b?: bool): By
144 145 146 147 148 149 150

指定目标控件的可点击状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

151 152 153
| 参数名 | 类型 | 必填 | 说明                             |
| ------ | ---- | ---- | -------------------------------- |
| b      | bool | 否   | 指定控件可点击状态,默认为true。 |
154 155 156

**返回值:**

157 158 159
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
160 161 162

**示例:**

163 164
```js
let by = BY.clickable(true) //使用静态构造器BY创建by对象,指定目标控件的可点击状态属性。
165
```
166

167
### longClickable<sup>9+</sup>
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190

longClickable(b?: bool): By

指定目标控件的可长按点击状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名 | 类型 | 必填 | 说明                                 |
| ------ | ---- | ---- | ------------------------------------ |
| b      | bool | 否   | 指定控件可长按点击状态,默认为true。 |

**返回值:**

| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |

**示例:**

```js
let by = BY.longClickable(true) //使用静态构造器BY创建by对象,指定目标控件的可长按点击状态属性。
191 192 193
```


194
### scrollable
195

196
scrollable(b?: bool): By
197 198 199 200 201 202 203

指定目标控件的可滑动状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

204 205 206
| 参数名 | 类型 | 必填 | 说明                         |
| ------ | ---- | ---- | ---------------------------- |
| b      | bool | 否   | 控件可滑动状态,默认为true。 |
207 208 209

**返回值:**

210 211 212
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
213 214 215

**示例:**

216 217
```js
let by = BY.scrollable(true) //使用静态构造器BY创建by对象,指定目标控件的可滑动状态属性。
218 219
```

220
### enabled
221

222
enabled(b?: bool): By
223 224 225 226 227 228 229

指定目标控件的使能状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

230 231 232
| 参数名 | 类型 | 必填 | 说明                           |
| ------ | ---- | ---- | ------------------------------ |
| b      | bool | 否   | 指定控件使能状态,默认为true。 |
233 234 235

**返回值:**

236 237 238
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
239 240 241

**示例:**

242 243
```js
let by = BY.enabled(true) //使用静态构造器BY创建by对象,指定目标控件的使能状态属性。
244 245
```

246
### focused
247

248
focused(b?: bool): By
249 250 251 252 253 254 255

指定目标控件的获焦状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

256 257 258
| 参数名 | 类型 | 必填 | 说明                       |
| ------ | ---- | ---- | -------------------------- |
| b      | bool | 否   | 控件获焦状态,默认为true。 |
259 260 261

**返回值:**

262 263 264
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
265 266 267

**示例:**

268 269
```js
let by = BY.focused(true) //使用静态构造器BY创建by对象,指定目标控件的获焦状态属性。
270 271
```

272
### selected
273

274
selected(b?: bool): By
275 276 277

指定目标控件的被选中状态属性,返回By对象自身。

278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名 | 类型 | 必填 | 说明                             |
| ------ | ---- | ---- | -------------------------------- |
| b      | bool | 否   | 指定控件被选中状态,默认为true。 |

**返回值:**

| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |

**示例:**

```js
let by = BY.selected(true) //使用静态构造器BY创建by对象,指定目标控件的被选中状态属性。
```

298
### checked<sup>9+</sup>
299 300 301 302

checked(b?: bool): By

指定目标控件的被勾选状态属性,返回By对象自身。
303 304 305 306 307

**系统能力**:SystemCapability.Test.UiTest

**参数:**

308 309 310
| 参数名 | 类型 | 必填 | 说明                              |
| ------ | ---- | ---- | --------------------------------- |
| b      | bool | 否   | 指定控件被勾选状态,默认为false。 |
311 312 313 314 315 316 317 318 319

**返回值:**

| 类型 | 说明           |
| ---- | -------------- |
| By   | 返回By对象自身 |

**示例:**

320 321
```js
let by = BY.checked(true) //使用静态构造器BY创建by对象,指定目标控件的被勾选状态属性
322
```
323

324
### checkable<sup>9+</sup>
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347

checkable(b?: bool): By

指定目标控件能否被勾选状态属性,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名 | 类型 | 必填 | 说明                                  |
| ------ | ---- | ---- | ------------------------------------- |
| b      | bool | 否   | 指定控件能否被勾选状态,默认为false。 |

**返回值:**

| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |

**示例:**

```js
let by = BY.checkable(true) //使用静态构造器BY创建by对象,指定目标控件的能否被勾选状态属性。
348 349
```

350
### isBefore
351

352
isBefore(by: By): By
353 354 355 356 357 358 359

指定目标控件位于给出的特征属性控件之前,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

360 361 362
| 参数名 | 类型 | 必填 | 说明             |
| ------ | ---- | ---- | ---------------- |
| by     | By   | 是   | 特征控件的属性。 |
363 364 365

**返回值:**

366 367 368
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
369 370 371

**示例:**

372 373
```js
let by = BY.isBefore(BY.text('123')) //使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之前。
374 375
```

376
### isAfter
377

378
isAfter(by: By): By
379 380 381 382 383 384 385

指定目标控件位于给出的特征属性控件之后,返回By对象自身。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

386 387 388
| 参数名 | 类型 | 必填 | 说明             |
| ------ | ---- | ---- | ---------------- |
| by     | By   | 是   | 特征控件的属性。 |
389 390 391

**返回值:**

392 393 394
| 类型 | 说明             |
| ---- | ---------------- |
| By   | 返回By对象自身。 |
395 396 397

**示例:**

398 399
```js
let by = BY.isAfter(BY.text('123')) //使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之后。
400 401 402 403 404 405 406
```

## UiComponent

UiTest中,UiComponent类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。
该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。

407 408 409 410 411 412 413 414 415
### Point<sup>9+</sup>

坐标点信息。

| 名称 | 参数类型 | 可读 | 可写 | 描述             |
| ---- | -------- | ---- | ---- | ---------------- |
| X    | number   | 是   | 否   | 坐标点的横坐标。 |
| Y    | number   | 是   | 否   | 坐标点的纵坐标。 |

416 417 418 419 420 421 422 423 424 425 426
### Rect<sup>9+</sup>

控件的边框信息。

| 名称    | 参数类型 | 可读 | 可写 | 描述                      |
| ------- | -------- | ---- | ---- | ------------------------- |
| leftX   | number   | 是   | 否   | 控件边框的左上角的X坐标。 |
| topY    | number   | 是   | 否   | 控件边框的左上角的Y坐标。 |
| rightX  | number   | 是   | 否   | 控件边框的右下角的X坐标。 |
| bottomY | number   | 是   | 否   | 控件边框的右下角的Y坐标。 |

427 428
### UiComponent.click

429
click(): Promise\<void>
430 431 432 433 434 435 436

控件对象进行点击操作。

**系统能力**:SystemCapability.Test.UiTest

**示例:**

437
```js
438 439 440 441 442
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    await button.click()
}
443 444
```

445
### doubleClick
446

447
doubleClick(): Promise\<void>
448 449 450 451 452 453 454

控件对象进行双击操作。

**系统能力**:SystemCapability.Test.UiTest

**示例:**

455
```js
456 457 458
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
459
    await button.doubleClick()
460
}
461 462
```

463
### longClick
464

465
longClick(): Promise\<void>
466 467 468 469 470 471 472

控件对象进行长按操作。

**系统能力**:SystemCapability.Test.UiTest

**示例:**

473
```js
474 475 476 477 478
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    await button.longClick()
}
479 480
```

481
### getId
482

483
getId(): Promise\<number>
484 485 486 487 488 489 490

获取控件对象的id值。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

491 492 493
| 类型             | 说明                            |
| ---------------- | ------------------------------- |
| Promise\<number> | 以Promise形式返回的控件的id值。 |
494 495 496

**示例:**

497
```js
498 499 500 501 502
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let num = await button.getId()
}
503 504
```

505
### getKey
506

507
getKey(): Promise\<string>
508 509 510 511 512 513 514

获取控件对象的key值。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

515 516 517
| 类型             | 说明                           |
| ---------------- | ------------------------------ |
| Promise\<string> | 以Promise形式返回控件的key值。 |
518 519 520

**示例:**

521
```js
522 523 524 525 526
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let str_key = await button.getKey()
}
527 528
```

529
### getText
530

531
getText(): Promise\<string>
532 533 534 535 536 537 538

获取控件对象的文本信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

539 540 541
| 类型             | 说明                              |
| ---------------- | --------------------------------- |
| Promise\<string> | 以Promise形式返回控件的文本信息。 |
542 543 544

**示例:**

545
```js
546 547 548 549 550
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let text = await button.getText()
}
551 552
```

553
### getType
554

555
getType(): Promise\<string>
556 557 558 559 560 561 562

获取控件对象的控件类型。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

563 564 565
| 类型             | 说明                          |
| ---------------- | ----------------------------- |
| Promise\<string> | 以Promise形式返回控件的类型。 |
566 567 568

**示例:**

569
```js
570 571 572 573 574
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let type = await button.getType()
}
575 576
```

577
### getBounds<sup>9+</sup>
578

579
getBounds(): Promise\<Rect>
580 581 582 583 584 585 586

获取控件对象的边框信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

587 588 589
| 类型           | 说明                                  |
| -------------- | ------------------------------------- |
| Promise\<Rect> | 以Promise形式返回控件对象的边框信息。 |
590 591 592 593 594 595 596 597 598 599 600

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let rect = await button.getBounds()
}
```

601
### getBoundsCenter<sup>9+</sup>
602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624

getBoundsCenter(): Promise\<Point>

获取控件对象的中心点信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型            | 说明                                    |
| --------------- | --------------------------------------- |
| Promise\<Point> | 以Promise形式返回控件对象的中心点信息。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let point = await button.getBoundsCenter()
}
```

625
### isClickable
626

627
isClickable(): Promise\<bool>
628 629 630 631 632 633 634

获取控件对象可点击状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

635 636 637
| 类型           | 说明                                  |
| -------------- | ------------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象可点击状态。 |
638 639 640

**示例:**

641
```js
642 643 644 645 646 647 648 649 650 651
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isClickable()) {
        console.info('This button can be Clicked')
    }
    else{
        console.info('This button can not be Clicked')
    }
}
652 653
```

654
### isLongClickable<sup>9+</sup>
655

656
isLongClickable(): Promise\<bool> 
657

658 659 660 661 662 663
获取控件对象可长按点击状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

664 665 666
| 类型           | 说明                                        |
| -------------- | ------------------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象能否长按点击状态。 |
667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isLongClickable()) {
        console.info('This button can longClick')
    }
    else{
        console.info('This button can not longClick')
    }
}
```

683
### isChecked<sup>9+</sup>
684

685
isChecked(): Promise\<bool>
686 687 688 689 690 691 692

获取控件对象被勾选状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

693 694 695
| 类型           | 说明                                  |
| -------------- | ------------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象被勾选状态。 |
696

697 698 699 700 701 702 703 704 705 706 707 708 709 710 711
**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let checkBox = await driver.findComponent(BY.type('Checkbox'))
    if(await checkBox.isChecked) {
        console.info('This checkBox is checked')
    }
    else{
        console.info('This checkBox is not checked')
    }
}
```

712
### isCheckable<sup>9+</sup>
713

714
isCheckable(): Promise\<bool>
715 716

获取控件对象能否被勾选的属性。
717 718 719 720 721

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

722 723 724
| 类型           | 说明                                        |
| -------------- | ------------------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象能否被勾选的属性。 |
725 726 727

**示例:**

728 729 730 731 732 733 734 735 736 737 738
```js
async function demo() {
    let driver = UiDriver.create()
    let checkBox = await driver.findComponent(BY.type('Checkbox'))
    if(await checkBox.isCheckable) {
        console.info('This checkBox is checkable')
    }
    else{
        console.info('This checkBox is not checkable')
    }
}
739
```
740

741
### isScrollable
742

743
isScrollable(): Promise\<bool>
744 745 746 747 748 749 750

获取控件对象可滑动状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

751 752 753
| 类型           | 说明                                  |
| -------------- | ------------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象可滑动状态。 |
754 755 756 757

**示例:**

```js
758 759 760 761 762 763 764 765 766 767
async function demo() {
    let driver = UiDriver.create()
    let scrollBar = await driver.findComponent(BY.scrollable(true))
    if(await scrollBar.isScrollable()) {
        console.info('This scrollBar can be operated')
    }
    else{
        console.info('This scrollBar can not be operated')
    }
}
768 769 770
```


771
### isEnabled
772

773
isEnabled(): Promise\<bool>
774 775 776 777 778 779 780

获取控件使能状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

781 782 783
| 类型           | 说明                            |
| -------------- | ------------------------------- |
| Promise\<bool> | 以Promise形式返回控件使能状态。 |
784 785 786

**示例:**

787
```js
788 789 790 791 792 793 794 795 796 797 798
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isEnabled()) {
        console.info('This button can be operated')
    }
    else{
        console.info('This button can not be operated')
    }
}

799 800
```

801
### isFocused
802

803
isFocused(): Promise\<bool>
804 805 806 807 808 809 810

判断控件对象是否获焦。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

811 812 813
| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回控件对象是否获焦。 |
814 815 816

**示例:**

817
```js
818 819 820 821 822 823 824 825 826 827
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isFocused()) {
        console.info('This button is focused')
	}
    else{
        console.info('This button is not focused')
	}
}
828 829
```

830
### isSelected
831

832
isSelected(): Promise\<bool>
833 834 835 836 837 838 839

获取控件对象被选中状态。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

840 841 842
| 类型           | 说明                 |
| -------------- | -------------------- |
| Promise\<bool> | 控件对象被选中的状态 |
843 844 845

**示例:**

846
```js
847 848 849 850 851 852 853 854 855 856
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isSelected()) {
        console.info('This button is selected')
	}
    else{
        console.info('This button is not selected')
    }
}
857 858
```

859
### inputText
860

861
inputText(text: string): Promise\<void>
862 863 864 865 866 867 868

向控件中输入文本(适用于文本框控件)。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

869 870 871
| 参数名 | 类型   | 必填 | 说明             |
| ------ | ------ | ---- | ---------------- |
| text   | string | 是   | 输入的文本信息。 |
872 873 874

**示例:**

875 876 877 878 879 880
```js
async function demo() {
    let driver = UiDriver.create()
    let text = await driver.findComponent(BY.text('hello world'))
    await text.inputText('123')
}
881
```
882

883
### clearText<sup>9+</sup>
884

885
clearText(): Promise\<void>
886 887 888 889 890 891 892 893

清除控件的文本信息(适用于文本框控件)。

**系统能力**:SystemCapability.Test.UiTest

**示例:**

```js
894 895
async function demo() {
    let driver = UiDriver.create()
896 897
    let text = await driver.findComponent(BY.text('hello world'))
    await text.clearText()
898
}
899 900
```

901
### scrollSearch
902

903
scrollSearch(by: By): Promise\<UiComponent>
904

905
在控件上滑动查找目标控件(适用于List等支持滑动的控件)。
906 907 908 909 910

**系统能力**:SystemCapability.Test.UiTest

**参数:**

911 912 913
| 参数名 | 类型 | 必填 | 说明                 |
| ------ | ---- | ---- | -------------------- |
| by     | By   | 是   | 目标控件的属性要求。 |
914 915 916

**返回值:**

917 918 919
| 类型                  | 说明                                  |
| --------------------- | ------------------------------------- |
| Promise\<UiComponent> | 以Promise形式返回找到的目标控件对象。 |
920 921 922

**示例:**

923
```js
924 925
async function demo() {
    let driver = UiDriver.create()
926
    let scrollBar = await driver.findComponent(BY.type('Scroll'))
927 928
    let button = await scrollBar.scrollSearch(BY.text('next page'))
}
929 930
```

931
### scrollToTop<sup>9+</sup>
932

933
scrollToTop(speed?: number): Promise\<void>
934 935 936 937 938

在控件上滑动到顶部(适用于List等支持滑动的控件)。

**系统能力**:SystemCapability.Test.UiTest

939 940 941 942 943 944
**参数:**

| 参数名 | 类型   | 必填 | 说明                                     |
| ------ | ------ | ---- | ---------------------------------------- |
| speed  | number | 否   | 滑动速率,默认值为600,单位:像素点/秒。 |

945 946 947 948 949 950 951 952 953 954
**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let scrollBar = await driver.findComponent(BY.type('Scroll'))
    await scrollBar.scrollToTop()
}
```

955
### scrollToBottom<sup>9+</sup>
956

957
scrollToBottom(speed?: number): Promise\<void>
958 959 960 961 962

在控件上滑动到底部(适用于List等支持滑动的控件)。

**系统能力**:SystemCapability.Test.UiTest

963 964 965 966 967 968
**参数:**

| 参数名 | 类型   | 必填 | 说明                                     |
| ------ | ------ | ---- | ---------------------------------------- |
| speed  | number | 否   | 滑动速率,默认值为600,单位:像素点/秒。 |

969 970 971 972 973 974 975 976 977 978
**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let scrollBar = await driver.findComponent(BY.type('Scroll'))
    await scrollBar.scrollToBottom()
}
```

979
### dragTo<sup>9+</sup>
980

981
dragTo(target: UiComponent): Promise\<void>
982 983 984 985 986 987 988

将控件拖拽至目标控件处。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

989 990 991
| 参数名 | 类型        | 必填 | 说明       |
| ------ | ----------- | ---- | ---------- |
| target | UiComponent | 是   | 目标控件。 |
992 993 994 995 996 997 998

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
999 1000
    let text = await driver.findComponent(BY.text('hello world'))
    await button.dragTo(text)
1001 1002 1003
    }
```

1004 1005 1006 1007 1008
## UiDriver

UiDriver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等API。
该类提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await调用。

1009
### create
1010

1011
static create(): UiDriver
1012 1013 1014 1015 1016 1017 1018

静态方法,构造一个UiDriver对象,并返回该对象。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

1019 1020 1021
| 类型    | 说明                     |
| ------- | ------------------------ |
| UiDrive | 返回构造的UiDriver对象。 |
1022 1023 1024

**示例:**

1025
```js
1026 1027 1028
async function demo() {
    let driver = UiDriver.create()
}
1029 1030
```

1031
### delayMs
1032

1033
delayMs(duration: number): Promise\<void>
1034 1035 1036 1037 1038 1039 1040

UiDriver对象在给定的时间内延时。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1041 1042 1043
| 参数名   | 类型   | 必填 | 说明         |
| -------- | ------ | ---- | ------------ |
| duration | number | 是   | 给定的时间。 |
1044 1045 1046

**示例:**

1047
```js
1048 1049 1050 1051
async function demo() {
    let driver = UiDriver.create()
    await driver.delayMs(1000)
}
1052 1053
```

1054
### findComponent
1055

1056
findComponent(by: By): Promise\<UiComponent>
1057 1058 1059 1060 1061 1062 1063

在UiDriver对象中,根据给出的目标控件属性要求查找目标控件。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1064 1065 1066
| 参数名 | 类型 | 必填 | 说明                 |
| ------ | ---- | ---- | -------------------- |
| by     | By   | 是   | 目标控件的属性要求。 |
1067 1068 1069

**返回值:**

1070 1071 1072
| 类型                  | 说明                              |
| --------------------- | --------------------------------- |
| Promise\<UiComponent> | 以Promise形式返回找到的控件对象。 |
1073 1074 1075

**示例:**

1076
```js
1077 1078 1079 1080
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.text('next page'))
}
1081 1082
```

1083
### findComponents
1084

1085
findComponents(by: By): Promise\<Array\<UiComponent>>
1086 1087 1088 1089 1090 1091 1092

在UiDriver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1093 1094 1095
| 参数名 | 类型 | 必填 | 说明                 |
| ------ | ---- | ---- | -------------------- |
| by     | By   | 是   | 目标控件的属性要求。 |
1096 1097 1098

**返回值:**

1099 1100 1101
| 类型                          | 说明                                    |
| ----------------------------- | --------------------------------------- |
| Promise\<Array\<UiComponent>> | 以Promise形式返回找到的控件对象的列表。 |
1102 1103 1104

**示例:**

1105
```js
1106 1107 1108 1109
async function demo() {
    let driver = UiDriver.create()
    let buttonList = await driver.findComponents(BY.text('next page'))
}
1110 1111
```

1112
### findWindow<sup>9+</sup>
1113 1114 1115 1116 1117 1118 1119 1120 1121

findWindow(filter: WindowFilter): Promise\<UiWindow>

通过指定窗口的属性来查找目标窗口。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1122 1123 1124
| 参数名 | 类型                           | 必填 | 说明             |
| ------ | ------------------------------ | ---- | ---------------- |
| filter | [WindowFilter](#windowfilter9) | 是   | 目标窗口的属性。 |
1125 1126 1127

**返回值:**

1128 1129 1130
| 类型                             | 说明                                  |
| -------------------------------- | ------------------------------------- |
| Promise\<[UiWindow](#uiwindow9)> | 以Promise形式返回找到的目标窗口对象。 |
1131 1132 1133 1134 1135 1136 1137 1138 1139 1140

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
}
```

1141
### waitForComponent<sup>9+</sup>
1142

1143
waitForComponent(by: By, time: number): Promise\<UiComponent>
1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157

在UiDriver对象中,在用户给定的时间内,持续查找满足控件属性要求的目标控件。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| by     | By     | 是   | 目标控件的属性要求。             |
| time   | number | 是   | 查找目标控件的持续时间。单位ms。 |

**返回值:**

1158 1159 1160
| 类型                  | 说明                              |
| --------------------- | --------------------------------- |
| Promise\<UiComponent> | 以Promise形式返回找到的控件对象。 |
1161 1162 1163 1164 1165 1166 1167 1168 1169 1170

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let button = await driver.waitForComponent(BY.text('next page'),500)
}
```

1171
### assertComponentExist   
1172

1173
assertComponentExist(by: By): Promise\<void>
1174 1175 1176 1177 1178 1179 1180

断言API,用于断言当前界面存在满足给出的目标控件属性的控件; 如果控件不存在,该API将抛出JS异常,使当前测试用例失败。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1181 1182 1183
| 参数名 | 类型 | 必填 | 说明                 |
| ------ | ---- | ---- | -------------------- |
| by     | By   | 是   | 目标控件的属性要求。 |
1184 1185 1186

**示例:**

1187
```js
1188 1189 1190 1191
async function demo() {
    let driver = UiDriver.create()
    await driver.assertComponentExist(BY.text('next page'))
}
1192 1193
```

1194
### pressBack
1195

1196
pressBack(): Promise\<void>
1197 1198 1199 1200 1201 1202 1203

UiDriver对象进行点击BACK键的操作。

**系统能力**:SystemCapability.Test.UiTest

**示例:**

1204
```js
1205 1206 1207 1208
async function demo() {
    let driver = UiDriver.create()
    await driver.pressBack()
}
1209 1210
```

1211
### triggerKey
1212

1213
triggerKey(keyCode: number): Promise\<void>
1214 1215 1216 1217 1218 1219 1220

UiDriver对象采取如下操作:通过key值找到对应键并点击。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1221 1222 1223
| 参数名  | 类型   | 必填 | 说明          |
| ------- | ------ | ---- | ------------- |
| keyCode | number | 是   | 指定的key值。 |
1224 1225 1226

**示例:**

1227
```js
1228 1229 1230 1231
async function demo() {
    let driver = UiDriver.create()
    await driver.triggerKey(123)
}
1232 1233
```

1234
### click
1235

1236
click(x: number, y: number): Promise\<void>
1237 1238 1239 1240 1241 1242 1243

UiDriver对象采取如下操作:在目标坐标点单击。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1244 1245 1246 1247
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
1248 1249 1250

**示例:**

1251
```js
1252 1253 1254 1255
async function demo() {
    let driver = UiDriver.create()
    await driver.click(100,100)
}
1256 1257
```

1258
### doubleClick
1259

1260
doubleClick(x: number, y: number): Promise\<void>
1261 1262 1263 1264 1265 1266 1267

UiDriver对象采取如下操作:在目标坐标点双击。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1268 1269 1270 1271
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
1272 1273 1274

**示例:**

1275
```js
1276 1277 1278 1279
async function demo() {
    let driver = UiDriver.create()
    await driver.doubleClick(100,100)
}
1280 1281
```

1282
### longClick
1283

1284
longClick(x: number, y: number): Promise\<void>
1285 1286 1287 1288 1289 1290 1291

UiDriver对象采取如下操作:在目标坐标点长按下鼠标左键。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1292 1293 1294 1295
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |
1296 1297 1298

**示例:**

1299
```js
1300 1301 1302 1303
async function demo() {
    let driver = UiDriver.create()
    await driver.longClick(100,100)
}
1304 1305
```

1306
### swipe<sup>9+</sup>
1307

1308
swipe(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void>
1309 1310 1311 1312 1313 1314 1315

UiDriver对象采取如下操作:从给出的起始坐标点滑向给出的目的坐标点。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1316 1317 1318 1319 1320 1321 1322
| 参数名 | 类型   | 必填 | 说明                                     |
| ------ | ------ | ---- | ---------------------------------------- |
| startx | number | 是   | 以number的形式传入起始点的横坐标信息。   |
| starty | number | 是   | 以number的形式传入起始点的纵坐标信息。   |
| endx   | number | 是   | 以number的形式传入目的点的横坐标信息。   |
| endy   | number | 是   | 以number的形式传入目的点的纵坐标信息。   |
| speed  | number | 否   | 滑动速率,默认值为600,单位:像素点/秒。 |
1323 1324 1325

**示例:**

1326
```js
1327 1328
async function demo() {
    let driver = UiDriver.create()
1329
    await driver.swipe(100,100,200,200,600)
1330
}
1331 1332
```

1333
### drag<sup>9+</sup>
1334

1335
drag(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void>
1336 1337 1338 1339 1340 1341 1342

UiDriver对象采取如下操作:从给出的起始坐标点拖拽至给出的目的坐标点。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1343 1344 1345 1346 1347 1348 1349
| 参数名 | 类型   | 必填 | 说明                                     |
| ------ | ------ | ---- | ---------------------------------------- |
| startx | number | 是   | 以number的形式传入起始点的横坐标信息。   |
| starty | number | 是   | 以number的形式传入起始点的纵坐标信息。   |
| endx   | number | 是   | 以number的形式传入目的点的横坐标信息。   |
| endy   | number | 是   | 以number的形式传入目的点的纵坐标信息。   |
| speed  | number | 否   | 滑动速率,默认值为600,单位:像素点/秒。 |
1350 1351 1352 1353 1354 1355

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
1356
    await driver.drag(100,100,200,200,600)
1357 1358 1359
}
```

1360
### screenCap
1361

1362
screenCap(savePath: string): Promise\<bool>
1363 1364 1365 1366 1367 1368 1369

UiDriver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

1370 1371 1372
| 参数名   | 类型   | 必填 | 说明           |
| -------- | ------ | ---- | -------------- |
| savePath | string | 是   | 文件保存路径。 |
1373

1374 1375 1376 1377 1378 1379
**返回值:**

| 类型           | 说明                                   |
| -------------- | -------------------------------------- |
| Promise\<bool> | 截图操作是否成功完成。成功完成为true。 |

1380 1381
**示例:**

1382
```js
1383 1384 1385 1386
async function demo() {
    let driver = UiDriver.create()
    await driver.screenCap('/local/tmp/')
}
1387
```
1388

1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406
## UiWindow<sup>9+</sup>

UiTest中,UiWindow类代表了UI界面上的一个窗口,提供窗口属性获取,窗口拖动、调整窗口大小等API。
该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。

### WindowFilter<sup>9+</sup>

窗口的标志属性信息。

**系统能力**:SystemCapability.Test.UiTest 

| 名称       | 参数类型 | 必填 | 可读 | 可写 | 描述                       |
| ---------- | -------- | ---- | ---- | ---- | -------------------------- |
| bundleName | string   | 否   | 是   | 否   | 窗口对应的包名。           |
| title      | string   | 否   | 是   | 否   | 窗口的标题。               |
| focused    | bool     | 否   | 是   | 否   | 窗口是否获焦。             |
| actived    | bool     | 否   | 是   | 否   | 窗口是否正与用户进行交互。 |

1407
### getBundleName<sup>9+</sup>
1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429

getBundleName(): Promise\<string>

获取窗口的包名信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型             | 说明                              |
| ---------------- | --------------------------------- |
| Promise\<string> | 以Promise形式返回窗口的包名信息。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    let name = await window.getBundleName()
```

1430
### getBounds<sup>9+</sup>
1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453

getBounds(): Promise\<Rect>

获取窗口的边框信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                              |
| -------------- | --------------------------------- |
| Promise\<Rect> | 以Promise形式返回窗口的边框信息。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    let rect = await window.getBounds()
}
```

1454
### getTitle<sup>9+</sup>
1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477

getTitle(): Promise\<string>

获取窗口的标题信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型             | 说明                              |
| ---------------- | --------------------------------- |
| Promise\<string> | 以Promise形式返回窗口的标题信息。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    let rect = await window.getTitle()
}
```

1478
### getWindowMode<sup>9+</sup>
1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497

getWindowMode(): Promise\<WindowMode>

获取窗口的窗口模式信息。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型                                             | 说明                                  |
| ------------------------------------------------ | ------------------------------------- |
| Promise\<[WindowMode](#WindowMode<sup>9+</sup>)> | 以Promise形式返回窗口的窗口模式信息。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
1498
    let mode = await window.getWindowMode()
1499 1500 1501
}
```

1502
### isFocused<sup>9+</sup>
1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525

isFocused(): Promise\<bool>

判断窗口是否获焦。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回窗口对象是否获焦。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    let focused = await window.isFocused()
}
```

1526
### isActived<sup>9+</sup>
1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549

isActived(): Promise\<bool>

判断窗口是否为用户交互窗口。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                          |
| -------------- | --------------------------------------------- |
| Promise\<bool> | 以Promise形式返回窗口对象是否为用户交互窗口。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    let focused = await window.isActived()
}
```

1550
### focus<sup>9+</sup>
1551 1552 1553

focus(): Promise\<bool>

1554
让窗口获焦。
1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.focus()
}
```

1574
### moveTo<sup>9+</sup>
1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600

moveTo(x: number, y: number): Promise\<bool>;

将窗口移动到目标点。适用于支持移动的窗口。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| x      | number | 是   | 以number的形式传入目标点的横坐标信息。 |
| y      | number | 是   | 以number的形式传入目标点的纵坐标信息。 |

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
1601
    await window.moveTo(100, 100)
1602 1603 1604
}
```

1605
### resize<sup>9+</sup>
1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632

resize(wide: number, height: number, direction: ResizeDirection): Promise\<bool>

根据传入的宽、高和调整方向来调整窗口的大小。适用于支持大小调整的窗口。

**系统能力**:SystemCapability.Test.UiTest

**参数:**

| 参数名    | 类型                                             | 必填 | 说明                                                         |
| --------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
| wide      | number                                           | 是   | 以number的形式传入调整后窗口的宽度。                         |
| height    | number                                           | 是   | 以number的形式传入调整后窗口的高度。                         |
| direction | [ResizeDirection](#resizedirection<sup>9+</sup>) | 是   | 以[ResizeDirection](#ResizeDirection<sup>9+</sup>)的形式传入窗口调整的方向。 |

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
1633
    await window.resize(100, 100, ResizeDirection.LEFT)
1634 1635 1636
}
```

1637
### split<sup>9+</sup>
1638 1639 1640

split(): Promise\<bool>

1641
将窗口模式切换成分屏模式。适用于支持切屏操作的窗口。
1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.split()
}
```

1661
### maximize<sup>9+</sup>
1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684

maximize(): Promise\<bool>

将窗口最大化。适用于支持窗口最大化操作的窗口。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.maximize()
}
```

1685
### minimize<sup>9+</sup>
1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708

minimize(): Promise\<bool>

将窗口最小化。适用于支持窗口最小化操作的窗口。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.minimize()
}
```

1709
### resume<sup>9+</sup>
1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732

resume(): Promise\<bool>

将窗口恢复到之前的窗口模式。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.resume()
}
```

1733
### close<sup>9+</sup>
1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756

close(): Promise\<bool>

将窗口关闭。

**系统能力**:SystemCapability.Test.UiTest

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<bool> | 以Promise形式返回操作是否成功完成。 |

**示例:**

```js
async function demo() {
    let driver = UiDriver.create()
    let window = await driver.findWindow({actived: true})
    await window.close()
}
```

1757
## MatchPattern
1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768

控件属性支持的匹配模式。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Test.UiTest

| 名称        | 值   | 说明           |
| ----------- | ---- | -------------- |
| EQUALS      | 0    | 等于给定值。   |
| CONTAINS    | 1    | 包含给定值。   |
| STARTS_WITH | 2    | 从给定值开始。 |
| ENDS_WITH   | 3    | 以给定值结束。 |
1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794

## ResizeDirection<sup>9+</sup>

窗口调整大小的方向。

| 名称       | 说明     |
| ---------- | -------- |
| LEFT       | 左方。   |
| RIGHT      | 右方。   |
| UP         | 上方。   |
| DOWN       | 下方。   |
| LEFT_UP    | 左上方。 |
| LEFT_DOWN  | 左下方。 |
| RIGHT_UP   | 右上方。 |
| RIGHT_DOWN | 右下方。 |

## WindowMode<sup>9+</sup>

窗口的窗口模式。

| 名称       | 说明       |
| ---------- | ---------- |
| FULLSCREEN | 全屏模式。 |
| PRIMARY    | 主窗口。   |
| SECONDARY  | 第二窗口。 |
| FLOAT      | 浮动窗口。 |