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> 17>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 18 19 20## 导入模块 21 22```js 23import {UiComponent, UiDriver, Component, Driver, UiWindow, ON, BY, MatchPattern, DisplayRotation, ResizeDirection, WindowMode, PointerMatrix} from '@ohos.UiTest'; 24``` 25 26## MatchPattern 27 28控件属性支持的匹配模式。 29 30**系统能力**:SystemCapability.Test.UiTest 31 32| 名称 | 值 | 说明 | 33| ----------- | ---- | -------------- | 34| EQUALS | 0 | 等于给定值。 | 35| CONTAINS | 1 | 包含给定值。 | 36| STARTS_WITH | 2 | 以给定值开始。 | 37| ENDS_WITH | 3 | 以给定值结束。 | 38 39## ResizeDirection<sup>9+</sup> 40 41窗口调整大小的方向。 42 43**系统能力**:SystemCapability.Test.UiTest 44 45| 名称 | 值 | 说明 | 46| ---------- | ---- | -------- | 47| LEFT | 0 | 左方。 | 48| RIGHT | 1 | 右方。 | 49| UP | 2 | 上方。 | 50| DOWN | 3 | 下方。 | 51| LEFT_UP | 4 | 左上方。 | 52| LEFT_DOWN | 5 | 左下方。 | 53| RIGHT_UP | 6 | 右上方。 | 54| RIGHT_DOWN | 7 | 右下方。 | 55 56## Point<sup>9+</sup> 57 58坐标点信息。 59 60**系统能力**:SystemCapability.Test.UiTest 61 62| 名称 | 类型 | 可读 | 可写 | 说明 | 63| ---- | ------ | ---- | ---- | ---------------- | 64| x | number | 是 | 否 | 坐标点的横坐标。 | 65| y | number | 是 | 否 | 坐标点的纵坐标。 | 66 67## Rect<sup>9+</sup> 68 69控件的边框信息。 70 71**系统能力**:SystemCapability.Test.UiTest 72 73| 名称 | 类型 | 可读 | 可写 | 说明 | 74| ------ | ------ | ---- | ---- | ------------------------- | 75| left | number | 是 | 否 | 控件边框的左上角的X坐标。 | 76| top | number | 是 | 否 | 控件边框的左上角的Y坐标。 | 77| right | number | 是 | 否 | 控件边框的右下角的X坐标。 | 78| bottom | number | 是 | 否 | 控件边框的右下角的Y坐标。 | 79 80## WindowMode<sup>9+</sup> 81 82**系统能力**:SystemCapability.Test.UiTest 83 84窗口的窗口模式。 85 86| 名称 | 值 | 说明 | 87| ---------- | ---- | ---------- | 88| FULLSCREEN | 0 | 全屏模式。 | 89| PRIMARY | 1 | 主窗口。 | 90| SECONDARY | 2 | 第二窗口。 | 91| FLOATING | 3 | 浮动窗口。 | 92 93## DisplayRotation<sup>9+</sup> 94 95**系统能力**:SystemCapability.Test.UiTest 96 97设备显示器的显示方向。 98 99| 名称 | 值 | 说明 | 100| ------------ | ---- | ---------------------------------------- | 101| ROTATION_0 | 0 | 设备显示器不旋转,初始形态垂直显示。 | 102| ROTATION_90 | 1 | 设备显示器顺时针旋转90°,水平显示。 | 103| ROTATION_180 | 2 | 设备显示器顺时针旋转180°,逆向垂直显示。 | 104| ROTATION_270 | 3 | 设备显示器顺时针旋转270°,逆向水平显示。 | 105 106## WindowFilter<sup>9+</sup> 107 108窗口的标志属性信息。 109 110**系统能力**:SystemCapability.Test.UiTest 111 112| 名称 | 类型 | 可读 | 可写 | 说明 | 113| ---------- | ------- | ---- | ---- | -------------------------- | 114| bundleName | string | 是 | 否 | 窗口归属应用的包名。 | 115| title | string | 是 | 否 | 窗口的标题信息。 | 116| focused | boolean | 是 | 否 | 窗口是否处于获焦状态。 | 117| actived | boolean | 是 | 否 | 窗口是否正与用户进行交互。 | 118 119## On<sup>9+</sup> 120 121UiTest框架在API 9中,通过On类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br> 122On提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[ON.isBefore](#isbefore)和[ON.isAfter](#isafter)等API限定邻近控件特征进行辅助定位。<br>On类提供的所有API均为同步接口,建议使用者通过静态构造器ON来链式创建On对象。 123 124```js 125ON.text('123').type('button'); 126``` 127 128### text<sup>9+</sup> 129 130text(txt: string, pattern?: MatchPattern): On 131 132指定目标控件文本属性,支持多种匹配模式,返回On对象自身。 133 134**系统能力**:SystemCapability.Test.UiTest 135 136**参数:** 137 138| 参数名 | 类型 | 必填 | 说明 | 139| ------- | ----------------------------- | ---- | --------------------------------------------------- | 140| txt | string | 是 | 指定控件文本,用于匹配目标控件文本。 | 141| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 142 143**返回值:** 144 145| 类型 | 说明 | 146| ---------- | ---------------------------------- | 147| [On](#on9) | 返回指定目标控件文本属性的On对象。 | 148 149**示例:** 150 151```js 152let on = ON.text('123'); // 使用静态构造器ON创建On对象,指定目标控件的text属性。 153``` 154 155 156### id<sup>9+</sup> 157 158id(id: string): On 159 160指定目标控件id属性,返回On对象自身。 161 162**系统能力**:SystemCapability.Test.UiTest 163 164**参数:** 165 166| 参数名 | 类型 | 必填 | 说明 | 167| ------ | ------ | ---- | ---------------- | 168| id | string | 是 | 指定控件的id值。 | 169 170**返回值:** 171 172| 类型 | 说明 | 173| ---------- | -------------------------------- | 174| [On](#on9) | 返回指定目标控件id属性的On对象。 | 175 176**示例:** 177 178```js 179let on = ON.id('123'); // 使用静态构造器ON创建On对象,指定目标控件的id属性。 180``` 181 182 183### type<sup>9+</sup> 184 185type(tp: string): On 186 187指定目标控件的控件类型属性,返回On对象自身。 188 189**系统能力**:SystemCapability.Test.UiTest 190 191**参数:** 192 193| 参数名 | 类型 | 必填 | 说明 | 194| ------ | ------ | ---- | -------------- | 195| tp | string | 是 | 指定控件类型。 | 196 197**返回值:** 198 199| 类型 | 说明 | 200| ---------- | ---------------------------------------- | 201| [On](#on9) | 返回指定目标控件的控件类型属性的On对象。 | 202 203**示例:** 204 205```js 206let on = ON.type('button'); // 使用静态构造器ON创建On对象,指定目标控件的控件类型属性。 207``` 208 209 210### clickable<sup>9+</sup> 211 212clickable(b?: boolean): On 213 214指定目标控件的可点击状态属性,返回On对象自身。 215 216**系统能力**:SystemCapability.Test.UiTest 217 218**参数:** 219 220| 参数名 | 类型 | 必填 | 说明 | 221| ------ | ------- | ---- | ------------------------------------------------------------ | 222| b | boolean | 否 | 指定控件可点击状态,true:可点击,false:不可点击。默认为true。 | 223 224**返回值:** 225 226| 类型 | 说明 | 227| ---------- | ------------------------------------------ | 228| [On](#on9) | 返回指定目标控件的可点击状态属性的On对象。 | 229 230**示例:** 231 232```js 233let on = ON.clickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可点击状态属性。 234``` 235 236### longClickable<sup>9+</sup> 237 238longClickable(b?: boolean): On 239 240指定目标控件的可长按点击状态属性,返回On对象自身。 241 242**系统能力**:SystemCapability.Test.UiTest 243 244**参数:** 245 246| 参数名 | 类型 | 必填 | 说明 | 247| ------ | ------- | ---- | ------------------------------------------------------------ | 248| b | boolean | 否 | 指定控件可长按点击状态,true:可长按点击,false:不可长按点击。默认为true。 | 249 250**返回值:** 251 252| 类型 | 说明 | 253| ---------- | ---------------------------------------------- | 254| [On](#on9) | 返回指定目标控件的可长按点击状态属性的On对象。 | 255 256**示例:** 257 258```js 259let on = ON.longClickable(true); // 使用静态构造器ON创建On对象,指定目标控件的可长按点击状态属性。 260``` 261 262 263### scrollable<sup>9+</sup> 264 265scrollable(b?: boolean): On 266 267指定目标控件的可滑动状态属性,返回On对象自身。 268 269**系统能力**:SystemCapability.Test.UiTest 270 271**参数:** 272 273| 参数名 | 类型 | 必填 | 说明 | 274| ------ | ------- | ---- | ----------------------------------------------------------- | 275| b | boolean | 否 | 控件可滑动状态,true:可滑动,false:不可滑动。默认为true。 | 276 277**返回值:** 278 279| 类型 | 说明 | 280| ---------- | ------------------------------------------ | 281| [On](#on9) | 返回指定目标控件的可滑动状态属性的On对象。 | 282 283**示例:** 284 285```js 286let on = ON.scrollable(true); // 使用静态构造器ON创建On对象,指定目标控件的可滑动状态属性。 287``` 288 289### enabled<sup>9+</sup> 290 291enabled(b?: boolean): On 292 293指定目标控件的使能状态属性,返回On对象自身。 294 295**系统能力**:SystemCapability.Test.UiTest 296 297**参数:** 298 299| 参数名 | 类型 | 必填 | 说明 | 300| ------ | ------- | ---- | --------------------------------------------------------- | 301| b | boolean | 否 | 指定控件使能状态,true:使能,false:未使能。默认为true。 | 302 303**返回值:** 304 305| 类型 | 说明 | 306| ---------- | ---------------------------------------- | 307| [On](#on9) | 返回指定目标控件的使能状态属性的On对象。 | 308 309**示例:** 310 311```js 312let on = ON.enabled(true); // 使用静态构造器ON创建On对象,指定目标控件的使能状态属性。 313``` 314 315### focused<sup>9+</sup> 316 317focused(b?: boolean): On 318 319指定目标控件的获焦状态属性,返回On对象自身。 320 321**系统能力**:SystemCapability.Test.UiTest 322 323**参数:** 324 325| 参数名 | 类型 | 必填 | 说明 | 326| ------ | ------- | ---- | ----------------------------------------------------- | 327| b | boolean | 否 | 控件获焦状态,true:获焦,false:未获焦。默认为true。 | 328 329**返回值:** 330 331| 类型 | 说明 | 332| ---------- | ---------------------------------------- | 333| [On](#on9) | 返回指定目标控件的获焦状态属性的On对象。 | 334 335**示例:** 336 337```js 338let on = ON.focused(true); // 使用静态构造器ON创建On对象,指定目标控件的获焦状态属性。 339``` 340 341### selected<sup>9+</sup> 342 343selected(b?: boolean): On 344 345指定目标控件的被选中状态属性,返回On对象自身。 346 347**系统能力**:SystemCapability.Test.UiTest 348 349**参数:** 350 351| 参数名 | 类型 | 必填 | 说明 | 352| ------ | ------- | ---- | ------------------------------------------------------------ | 353| b | boolean | 否 | 指定控件被选中状态,true:被选中,false:未被选中。默认为true。 | 354 355**返回值:** 356 357| 类型 | 说明 | 358| ---------- | ------------------------------------------ | 359| [On](#on9) | 返回指定目标控件的被选中状态属性的On对象。 | 360 361**示例:** 362 363```js 364let on = ON.selected(true); // 使用静态构造器ON创建On对象,指定目标控件的被选中状态属性。 365``` 366 367### checked<sup>9+</sup> 368 369checked(b?: boolean): On 370 371指定目标控件的被勾选状态属性,返回On对象自身。 372 373**系统能力**:SystemCapability.Test.UiTest 374 375**参数:** 376 377| 参数名 | 类型 | 必填 | 说明 | 378| ------ | ------- | ---- | ------------------------------------------------------------ | 379| b | boolean | 否 | 指定控件被勾选状态,true:被勾选,false:未被勾选。默认为false。 | 380 381**返回值:** 382 383| 类型 | 说明 | 384| ---------- | ------------------------------------------ | 385| [On](#on9) | 返回指定目标控件的被勾选状态属性的On对象。 | 386 387**示例:** 388 389```js 390let on = ON.checked(true); // 使用静态构造器ON创建On对象,指定目标控件的被勾选状态属性 391``` 392 393### checkable<sup>9+</sup> 394 395checkable(b?: boolean): On 396 397指定目标控件能否被勾选状态属性,返回On对象自身。 398 399**系统能力**:SystemCapability.Test.UiTest 400 401**参数:** 402 403| 参数名 | 类型 | 必填 | 说明 | 404| ------ | ------- | ---- | ------------------------------------------------------------ | 405| b | boolean | 否 | 指定控件能否被勾选状态,true:能被勾选,false:不能被勾选。默认为false。 | 406 407**返回值:** 408 409| 类型 | 说明 | 410| ---------- | -------------------------------------------- | 411| [On](#on9) | 返回指定目标控件能否被勾选状态属性的On对象。 | 412 413**示例:** 414 415```js 416let on = ON.checkable(true); // 使用静态构造器ON创建On对象,指定目标控件的能否被勾选状态属性。 417``` 418 419### isBefore<sup>9+</sup> 420 421isBefore(on: On): On 422 423指定目标控件位于给出的特征属性控件之前,返回On对象自身。 424 425**系统能力**:SystemCapability.Test.UiTest 426 427**参数:** 428 429| 参数名 | 类型 | 必填 | 说明 | 430| ------ | ---------- | ---- | -------------------- | 431| on | [On](#on9) | 是 | 特征控件的属性要求。 | 432 433**返回值:** 434 435| 类型 | 说明 | 436| ---------- | ---------------------------------------------------- | 437| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之前的On对象。 | 438 439**示例:** 440 441```js 442let on = ON.isBefore(ON.text('123')); // 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之前。 443``` 444 445### isAfter<sup>9+</sup> 446 447isAfter(on: On): On 448 449指定目标控件位于给出的特征属性控件之后,返回On对象自身。 450 451**系统能力**:SystemCapability.Test.UiTest 452 453**参数:** 454 455| 参数名 | 类型 | 必填 | 说明 | 456| ------ | ---------- | ---- | -------------------- | 457| on | [On](#on9) | 是 | 特征控件的属性要求。 | 458 459**返回值:** 460 461| 类型 | 说明 | 462| ---------- | ---------------------------------------------------- | 463| [On](#on9) | 返回指定目标控件位于给出的特征属性控件之后的On对象。 | 464 465**示例:** 466 467```js 468let on = ON.isAfter(ON.text('123')); // 使用静态构造器ON创建On对象,指定目标控件位于给出的特征属性控件之后。 469``` 470 471## Component<sup>9+</sup> 472 473UiTest框架在API9中,Component类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。 474该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。 475 476### click<sup>9+</sup> 477 478click(): Promise\<void> 479 480控件对象进行点击操作。 481 482**系统能力**:SystemCapability.Test.UiTest 483 484**错误码:** 485 486以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 487 488| 错误码ID | 错误信息 | 489| -------- | ---------------------------------------- | 490| 17000002 | API does not allow calling concurrently. | 491| 17000004 | Component lost/UiWindow lost. | 492 493**示例:** 494 495```js 496async function demo() { 497 let driver = Driver.create(); 498 let button = await driver.findComponent(ON.type('button')); 499 await button.click(); 500} 501``` 502 503### doubleClick<sup>9+</sup> 504 505doubleClick(): Promise\<void> 506 507控件对象进行双击操作。 508 509**系统能力**:SystemCapability.Test.UiTest 510 511**错误码:** 512 513以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 514 515| 错误码ID | 错误信息 | 516| -------- | ---------------------------------------- | 517| 17000002 | API does not allow calling concurrently. | 518| 17000004 | Component lost/UiWindow lost. | 519 520**示例:** 521 522```js 523async function demo() { 524 let driver = Driver.create(); 525 let button = await driver.findComponent(ON.type('button')); 526 await button.doubleClick(); 527} 528``` 529 530### longClick<sup>9+</sup> 531 532longClick(): Promise\<void> 533 534控件对象进行长按操作。 535 536**系统能力**:SystemCapability.Test.UiTest 537 538**错误码:** 539 540以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 541 542| 错误码ID | 错误信息 | 543| -------- | ---------------------------------------- | 544| 17000002 | API does not allow calling concurrently. | 545| 17000004 | Component lost/UiWindow lost. | 546 547**示例:** 548 549```js 550async function demo() { 551 let driver = Driver.create(); 552 let button = await driver.findComponent(ON.type('button')); 553 await button.longClick(); 554} 555``` 556 557### getId<sup>9+</sup> 558 559getId(): Promise\<string> 560 561获取控件对象的id值。 562 563**系统能力**:SystemCapability.Test.UiTest 564 565**返回值:** 566 567| 类型 | 说明 | 568| ---------------- | ------------------------------- | 569| Promise\<string> | 以Promise形式返回的控件的id值。 | 570 571**错误码:** 572 573以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 574 575| 错误码ID | 错误信息 | 576| -------- | ---------------------------------------- | 577| 17000002 | API does not allow calling concurrently. | 578| 17000004 | Component lost/UiWindow lost. | 579 580**示例:** 581 582```js 583async function demo() { 584 let driver = Driver.create(); 585 let button = await driver.findComponent(ON.type('button')); 586 let num = await button.getId(); 587} 588``` 589 590### getText<sup>9+</sup> 591 592getText(): Promise\<string> 593 594获取控件对象的文本信息。 595 596**系统能力**:SystemCapability.Test.UiTest 597 598**返回值:** 599 600| 类型 | 说明 | 601| ---------------- | --------------------------------- | 602| Promise\<string> | 以Promise形式返回控件的文本信息。 | 603 604**错误码:** 605 606以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 607 608| 错误码ID | 错误信息 | 609| -------- | ---------------------------------------- | 610| 17000002 | API does not allow calling concurrently. | 611| 17000004 | Component lost/UiWindow lost. | 612 613**示例:** 614 615```js 616async function demo() { 617 let driver = Driver.create(); 618 let button = await driver.findComponent(ON.type('button')); 619 let text = await button.getText(); 620} 621``` 622 623### getType<sup>9+</sup> 624 625getType(): Promise\<string> 626 627获取控件对象的控件类型。 628 629**系统能力**:SystemCapability.Test.UiTest 630 631**返回值:** 632 633| 类型 | 说明 | 634| ---------------- | ----------------------------- | 635| Promise\<string> | 以Promise形式返回控件的类型。 | 636 637**错误码:** 638 639以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 640 641| 错误码ID | 错误信息 | 642| -------- | ---------------------------------------- | 643| 17000002 | API does not allow calling concurrently. | 644| 17000004 | Component lost/UiWindow lost. | 645 646**示例:** 647 648```js 649async function demo() { 650 let driver = Driver.create(); 651 let button = await driver.findComponent(ON.type('button')); 652 let type = await button.getType(); 653} 654``` 655 656### getBounds<sup>9+</sup> 657 658getBounds(): Promise\<Rect> 659 660获取控件对象的边框信息。 661 662**系统能力**:SystemCapability.Test.UiTest 663 664**返回值:** 665 666| 类型 | 说明 | 667| ------------------------ | ------------------------------------- | 668| Promise\<[Rect](#rect9)> | 以Promise形式返回控件对象的边框信息。 | 669 670**错误码:** 671 672以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 673 674| 错误码ID | 错误信息 | 675| -------- | ---------------------------------------- | 676| 17000002 | API does not allow calling concurrently. | 677| 17000004 | Component lost/UiWindow lost. | 678 679**示例:** 680 681```js 682async function demo() { 683 let driver = Driver.create(); 684 let button = await driver.findComponent(ON.type('button')); 685 let rect = await button.getBounds(); 686} 687``` 688 689### getBoundsCenter<sup>9+</sup> 690 691getBoundsCenter(): Promise\<Point> 692 693获取控件对象所占区域的中心点信息。 694 695**系统能力**:SystemCapability.Test.UiTest 696 697**返回值:** 698 699| 类型 | 说明 | 700| -------------------------- | ----------------------------------------------- | 701| Promise\<[Point](#point9)> | 以Promise形式返回控件对象所占区域的中心点信息。 | 702 703**错误码:** 704 705以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 706 707| 错误码ID | 错误信息 | 708| -------- | ---------------------------------------- | 709| 17000002 | API does not allow calling concurrently. | 710| 17000004 | Component lost/UiWindow lost. | 711 712**示例:** 713 714```js 715async function demo() { 716 let driver = Driver.create(); 717 let button = await driver.findComponent(ON.type('button')); 718 let point = await button.getBoundsCenter(); 719} 720``` 721 722### isClickable<sup>9+</sup> 723 724isClickable(): Promise\<boolean> 725 726获取控件对象可点击属性。 727 728**系统能力**:SystemCapability.Test.UiTest 729 730**返回值:** 731 732| 类型 | 说明 | 733| ----------------- | ------------------------------------------------------------ | 734| Promise\<boolean> | 以Promise形式返回控件对象是否可点击,true:可点击,false:不可点击。 | 735 736**错误码:** 737 738以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 739 740| 错误码ID | 错误信息 | 741| -------- | ---------------------------------------- | 742| 17000002 | API does not allow calling concurrently. | 743| 17000004 | Component lost/UiWindow lost. | 744 745**示例:** 746 747```js 748async function demo() { 749 let driver = Driver.create(); 750 let button = await driver.findComponent(ON.type('button')); 751 if(await button.isClickable()) { 752 console.info('This button can be Clicked'); 753 } else { 754 console.info('This button can not be Clicked'); 755 } 756} 757``` 758 759### isLongClickable<sup>9+</sup> 760 761isLongClickable(): Promise\<boolean> 762 763获取控件对象可长按点击属性。 764 765**系统能力**:SystemCapability.Test.UiTest 766 767**返回值:** 768 769| 类型 | 说明 | 770| ----------------- | ------------------------------------------------------------ | 771| Promise\<boolean> | 以Promise形式返回控件对象是否可安装点击,true:可长按点击,false:不可长按点击。 | 772 773**错误码:** 774 775以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 776 777| 错误码ID | 错误信息 | 778| -------- | ---------------------------------------- | 779| 17000002 | API does not allow calling concurrently. | 780| 17000004 | Component lost/UiWindow lost. | 781 782**示例:** 783 784```js 785async function demo() { 786 let driver = Driver.create(); 787 let button = await driver.findComponent(ON.type('button')); 788 if(await button.isLongClickable()) { 789 console.info('This button can longClick'); 790 } else { 791 console.info('This button can not longClick'); 792 } 793} 794``` 795 796### isChecked<sup>9+</sup> 797 798isChecked(): Promise\<boolean> 799 800获取控件对象被勾选状态。 801 802**系统能力**:SystemCapability.Test.UiTest 803 804**返回值:** 805 806| 类型 | 说明 | 807| ----------------- | ------------------------------------------------------------ | 808| Promise\<boolean> | 以Promise形式返回控件对象被勾选状态,true:被勾选,false:未被勾选。 | 809 810**错误码:** 811 812以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 813 814| 错误码ID | 错误信息 | 815| -------- | ---------------------------------------- | 816| 17000002 | API does not allow calling concurrently. | 817| 17000004 | Component lost/UiWindow lost. | 818 819**示例:** 820 821```js 822async function demo() { 823 let driver = Driver.create(); 824 let checkBox = await driver.findComponent(ON.type('Checkbox')); 825 if(await checkBox.isChecked) { 826 console.info('This checkBox is checked'); 827 } else { 828 console.info('This checkBox is not checked'); 829 } 830} 831``` 832 833### isCheckable<sup>9+</sup> 834 835isCheckable(): Promise\<boolean> 836 837获取控件对象能否被勾选属性。 838 839**系统能力**:SystemCapability.Test.UiTest 840 841**返回值:** 842 843| 类型 | 说明 | 844| ----------------- | ------------------------------------------------------------ | 845| Promise\<boolean> | 以Promise形式返回控件对象能否可被勾选属性,true:可被勾选,false:不可被勾选。 | 846 847**错误码:** 848 849以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 850 851| 错误码ID | 错误信息 | 852| -------- | ---------------------------------------- | 853| 17000002 | API does not allow calling concurrently. | 854| 17000004 | Component lost/UiWindow lost. | 855 856**示例:** 857 858```js 859async function demo() { 860 let driver = Driver.create(); 861 let checkBox = await driver.findComponent(ON.type('Checkbox')); 862 if(await checkBox.isCheckable) { 863 console.info('This checkBox is checkable'); 864 } else { 865 console.info('This checkBox is not checkable'); 866 } 867} 868``` 869 870### isScrollable<sup>9+</sup> 871 872isScrollable(): Promise\<boolean> 873 874获取控件对象可滑动属性。 875 876**系统能力**:SystemCapability.Test.UiTest 877 878**返回值:** 879 880| 类型 | 说明 | 881| ----------------- | ------------------------------------------------------------ | 882| Promise\<boolean> | 以Promise形式返回控件对象是否可滑动,true:可滑动,false:不可滑动。 | 883 884**错误码:** 885 886以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 887 888| 错误码ID | 错误信息 | 889| -------- | ---------------------------------------- | 890| 17000002 | API does not allow calling concurrently. | 891| 17000004 | Component lost/UiWindow lost. | 892 893**示例:** 894 895```js 896async function demo() { 897 let driver = Driver.create(); 898 let scrollBar = await driver.findComponent(ON.scrollable(true)); 899 if(await scrollBar.isScrollable()) { 900 console.info('This scrollBar can be operated'); 901 } else { 902 console.info('This scrollBar can not be operated'); 903 } 904} 905``` 906 907 908### isEnabled<sup>9+</sup> 909 910isEnabled(): Promise\<boolean> 911 912获取控件使能状态。 913 914**系统能力**:SystemCapability.Test.UiTest 915 916**返回值:** 917 918| 类型 | 说明 | 919| ----------------- | ---------------------------------------------------------- | 920| Promise\<boolean> | 以Promise形式返回控件使能状态,true:使能,false:未使能。 | 921 922**错误码:** 923 924以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 925 926| 错误码ID | 错误信息 | 927| -------- | ---------------------------------------- | 928| 17000002 | API does not allow calling concurrently. | 929| 17000004 | Component lost/UiWindow lost. | 930 931**示例:** 932 933```js 934async function demo() { 935 let driver = Driver.create(); 936 let button = await driver.findComponent(ON.type('button')); 937 if(await button.isEnabled()) { 938 console.info('This button can be operated'); 939 } else { 940 console.info('This button can not be operated'); 941 } 942} 943 944``` 945 946### isFocused<sup>9+</sup> 947 948isFocused(): Promise\<boolean> 949 950判断控件对象获焦状态。 951 952**系统能力**:SystemCapability.Test.UiTest 953 954**返回值:** 955 956| 类型 | 说明 | 957| ----------------- | ------------------------------------------------------------ | 958| Promise\<boolean> | 以Promise形式返回控件对象获焦状态,true:获焦,false:未获焦。 | 959 960**错误码:** 961 962以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 963 964| 错误码ID | 错误信息 | 965| -------- | ---------------------------------------- | 966| 17000002 | API does not allow calling concurrently. | 967| 17000004 | Component lost/UiWindow lost. | 968 969**示例:** 970 971```js 972async function demo() { 973 let driver = Driver.create(); 974 let button = await driver.findComponent(ON.type('button')); 975 if(await button.isFocused()) { 976 console.info('This button is focused'); 977 } else { 978 console.info('This button is not focused'); 979 } 980} 981``` 982 983### isSelected<sup>9+</sup> 984 985isSelected(): Promise\<boolean> 986 987获取控件对象被选中状态。 988 989**系统能力**:SystemCapability.Test.UiTest 990 991**返回值:** 992 993| 类型 | 说明 | 994| ----------------- | --------------------------------------------------- | 995| Promise\<boolean> | 控件对象被选中状态,true:被选中,false:未被选中。 | 996 997**错误码:** 998 999以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1000 1001| 错误码ID | 错误信息 | 1002| -------- | ---------------------------------------- | 1003| 17000002 | API does not allow calling concurrently. | 1004| 17000004 | Component lost/UiWindow lost. | 1005 1006**示例:** 1007 1008```js 1009async function demo() { 1010 let driver = Driver.create(); 1011 let button = await driver.findComponent(ON.type('button')); 1012 if(await button.isSelected()) { 1013 console.info('This button is selected'); 1014 } else { 1015 console.info('This button is not selected'); 1016 } 1017} 1018``` 1019 1020### inputText<sup>9+</sup> 1021 1022inputText(text: string): Promise\<void> 1023 1024向控件中输入文本(适用于文本框控件)。 1025 1026**系统能力**:SystemCapability.Test.UiTest 1027 1028**参数:** 1029 1030| 参数名 | 类型 | 必填 | 说明 | 1031| ------ | ------ | ---- | ---------------------------------------- | 1032| text | string | 是 | 输入的文本信息,当前支持英文和特殊字符。 | 1033 1034**错误码:** 1035 1036以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1037 1038| 错误码ID | 错误信息 | 1039| -------- | ---------------------------------------- | 1040| 17000002 | API does not allow calling concurrently. | 1041| 17000004 | Component lost/UiWindow lost. | 1042 1043**示例:** 1044 1045```js 1046async function demo() { 1047 let driver = Driver.create(); 1048 let text = await driver.findComponent(ON.text('hello world')); 1049 await text.inputText('123'); 1050} 1051``` 1052 1053### clearText<sup>9+</sup> 1054 1055clearText(): Promise\<void> 1056 1057清除控件的文本信息(适用于文本框控件)。 1058 1059**系统能力**:SystemCapability.Test.UiTest 1060 1061**错误码:** 1062 1063| 错误码ID | 错误信息 | 1064| -------- | ---------------------------------------- | 1065| 17000002 | API does not allow calling concurrently. | 1066| 17000004 | Component lost/UiWindow lost. | 1067 1068**示例:** 1069 1070```js 1071async function demo() { 1072 let driver = Driver.create(); 1073 let text = await driver.findComponent(ON.text('hello world')); 1074 await text.clearText(); 1075} 1076``` 1077 1078### scrollSearch<sup>9+</sup> 1079 1080scrollSearch(on: On): Promise\<Component> 1081 1082在控件上滑动查找目标控件(适用支持滑动的控件)。 1083 1084**系统能力**:SystemCapability.Test.UiTest 1085 1086**参数:** 1087 1088| 参数名 | 类型 | 必填 | 说明 | 1089| ------ | ---------- | ---- | -------------------- | 1090| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1091 1092**返回值:** 1093 1094| 类型 | 说明 | 1095| ---------------------------------- | ------------------------------------- | 1096| Promise\<[Component](#component9)> | 以Promise形式返回找到的目标控件对象。 | 1097 1098**错误码:** 1099 1100以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1101 1102| 错误码ID | 错误信息 | 1103| -------- | ---------------------------------------- | 1104| 17000002 | API does not allow calling concurrently. | 1105| 17000004 | Component lost/UiWindow lost. | 1106 1107**示例:** 1108 1109```js 1110async function demo() { 1111 let driver = Driver.create(); 1112 let scrollBar = await driver.findComponent(ON.type('Scroll')); 1113 let button = await scrollBar.scrollSearch(ON.text('next page')); 1114} 1115``` 1116 1117### scrollToTop<sup>9+</sup> 1118 1119scrollToTop(speed?: number): Promise\<void> 1120 1121在控件上滑动到顶部(适用支持滑动的控件)。 1122 1123**系统能力**:SystemCapability.Test.UiTest 1124 1125**参数:** 1126 1127| 参数名 | 类型 | 必填 | 说明 | 1128| ------ | ------ | ---- | ------------------------------------------------------------ | 1129| speed | number | 否 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 1130 1131**错误码:** 1132 1133以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1134 1135| 错误码ID | 错误信息 | 1136| -------- | ---------------------------------------- | 1137| 17000002 | API does not allow calling concurrently. | 1138| 17000004 | Component lost/UiWindow lost. | 1139 1140**示例:** 1141 1142```js 1143async function demo() { 1144 let driver = Driver.create(); 1145 let scrollBar = await driver.findComponent(ON.type('Scroll')); 1146 await scrollBar.scrollToTop(); 1147} 1148``` 1149 1150### scrollToBottom<sup>9+</sup> 1151 1152scrollToBottom(speed?: number): Promise\<void> 1153 1154在控件上滑动到底部(适用支持滑动的控件)。 1155 1156**系统能力**:SystemCapability.Test.UiTest 1157 1158**参数:** 1159 1160| 参数名 | 类型 | 必填 | 说明 | 1161| ------ | ------ | ---- | ------------------------------------------------------------ | 1162| speed | number | 否 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 1163 1164**错误码:** 1165 1166以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1167 1168| 错误码ID | 错误信息 | 1169| -------- | ---------------------------------------- | 1170| 17000002 | API does not allow calling concurrently. | 1171| 17000004 | Component lost/UiWindow lost. | 1172 1173**示例:** 1174 1175```js 1176async function demo() { 1177 let driver = Driver.create(); 1178 let scrollBar = await driver.findComponent(ON.type('Scroll')); 1179 await scrollBar.scrollToBottom(); 1180} 1181``` 1182 1183### dragTo<sup>9+</sup> 1184 1185dragTo(target: Component): Promise\<void> 1186 1187将控件拖拽至目标控件处。 1188 1189**系统能力**:SystemCapability.Test.UiTest 1190 1191**参数:** 1192 1193| 参数名 | 类型 | 必填 | 说明 | 1194| ------ | ------------------------ | ---- | ---------- | 1195| target | [Component](#component9) | 是 | 目标控件。 | 1196 1197**错误码:** 1198 1199以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1200 1201| 错误码ID | 错误信息 | 1202| -------- | ---------------------------------------- | 1203| 17000002 | API does not allow calling concurrently. | 1204| 17000004 | Component lost/UiWindow lost. | 1205 1206**示例:** 1207 1208```js 1209async function demo() { 1210 let driver = Driver.create(); 1211 let button = await driver.findComponent(ON.type('button')); 1212 let text = await driver.findComponent(ON.text('hello world')); 1213 await button.dragTo(text); 1214 } 1215``` 1216 1217### pinchOut<sup>9+</sup> 1218 1219pinchOut(scale: number): Promise\<void> 1220 1221将控件按指定的比例进行捏合放大。 1222 1223**系统能力**:SystemCapability.Test.UiTest 1224 1225**参数:** 1226 1227| 参数名 | 类型 | 必填 | 说明 | 1228| ------ | ------ | ---- | ---------------- | 1229| scale | number | 是 | 指定放大的比例。 | 1230 1231**错误码:** 1232 1233以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1234 1235| 错误码ID | 错误信息 | 1236| -------- | ---------------------------------------- | 1237| 17000002 | API does not allow calling concurrently. | 1238| 17000004 | Component lost/UiWindow lost. | 1239 1240**示例:** 1241 1242```js 1243async function demo() { 1244 let driver = Driver.create(); 1245 let image = await driver.findComponent(ON.type('image')); 1246 await image.pinchOut(1.5); 1247 } 1248``` 1249 1250### pinchIn<sup>9+</sup> 1251 1252pinchIn(scale: number): Promise\<void> 1253 1254将控件按指定的比例进行捏合缩小。 1255 1256**系统能力**:SystemCapability.Test.UiTest 1257 1258**参数:** 1259 1260| 参数名 | 类型 | 必填 | 说明 | 1261| ------ | ------ | ---- | ---------------- | 1262| scale | number | 是 | 指定缩小的比例。 | 1263 1264**错误码:** 1265 1266以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1267 1268| 错误码ID | 错误信息 | 1269| -------- | ---------------------------------------- | 1270| 17000002 | API does not allow calling concurrently. | 1271| 17000004 | Component lost/UiWindow lost. | 1272 1273**示例:** 1274 1275```js 1276async function demo() { 1277 let driver = Driver.create(); 1278 let image = await driver.findComponent(ON.type('image')); 1279 await image.pinchIn(0.5); 1280 } 1281``` 1282 1283## Driver<sup>9+</sup> 1284 1285Driver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。 1286该类提供的方法除Driver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await方式调用。 1287 1288### create<sup>9+</sup> 1289 1290static create(): Driver 1291 1292静态方法,构造一个Driver对象,并返回该对象。 1293 1294**系统能力**:SystemCapability.Test.UiTest 1295 1296**返回值:** 1297 1298| 类型 | 说明 | 1299| -------- | ---------------------- | 1300| Driver | 返回构造的Driver对象。 | 1301 1302**错误码:** 1303 1304以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1305 1306| 错误码ID | 错误信息 | 1307| -------- | ------------------ | 1308| 17000001 | Initialize failed. | 1309 1310**示例:** 1311 1312```js 1313async function demo() { 1314 let driver = Driver.create(); 1315} 1316``` 1317 1318### delayMs<sup>9+</sup> 1319 1320delayMs(duration: number): Promise\<void> 1321 1322Driver对象在给定的时间内延时。 1323 1324**系统能力**:SystemCapability.Test.UiTest 1325 1326**参数:** 1327 1328| 参数名 | 类型 | 必填 | 说明 | 1329| -------- | ------ | ---- | ---------------------- | 1330| duration | number | 是 | 给定的时间,单位:ms。 | 1331 1332**错误码:** 1333 1334以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1335 1336| 错误码ID | 错误信息 | 1337| -------- | ---------------------------------------- | 1338| 17000002 | API does not allow calling concurrently. | 1339 1340**示例:** 1341 1342```js 1343async function demo() { 1344 let driver = Driver.create(); 1345 await driver.delayMs(1000); 1346} 1347``` 1348 1349### findComponent<sup>9+</sup> 1350 1351findComponent(on: On): Promise\<Component> 1352 1353在Driver对象中,根据给出的目标控件属性要求查找目标控件。 1354 1355**系统能力**:SystemCapability.Test.UiTest 1356 1357**参数:** 1358 1359| 参数名 | 类型 | 必填 | 说明 | 1360| ------ | ---------- | ---- | -------------------- | 1361| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1362 1363**返回值:** 1364 1365| 类型 | 说明 | 1366| ---------------------------------- | --------------------------------- | 1367| Promise\<[Component](#component9)> | 以Promise形式返回找到的控件对象。 | 1368 1369**错误码:** 1370 1371以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1372 1373| 错误码ID | 错误信息 | 1374| -------- | ---------------------------------------- | 1375| 17000002 | API does not allow calling concurrently. | 1376 1377**示例:** 1378 1379```js 1380async function demo() { 1381 let driver = Driver.create(); 1382 let button = await driver.findComponent(ON.text('next page')); 1383} 1384``` 1385 1386### findComponents<sup>9+</sup> 1387 1388findComponents(on: On): Promise\<Array\<Component>> 1389 1390在Driver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。 1391 1392**系统能力**:SystemCapability.Test.UiTest 1393 1394**参数:** 1395 1396| 参数名 | 类型 | 必填 | 说明 | 1397| ------ | ---------- | ---- | -------------------- | 1398| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1399 1400**返回值:** 1401 1402| 类型 | 说明 | 1403| ------------------------------------------ | --------------------------------------- | 1404| Promise\<Array\<[Component](#component9)>> | 以Promise形式返回找到的控件对象的列表。 | 1405 1406**错误码:** 1407 1408以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1409 1410| 错误码ID | 错误信息 | 1411| -------- | ---------------------------------------- | 1412| 17000002 | API does not allow calling concurrently. | 1413 1414**示例:** 1415 1416```js 1417async function demo() { 1418 let driver = Driver.create(); 1419 let buttonList = await driver.findComponents(ON.text('next page')); 1420} 1421``` 1422 1423### findWindow<sup>9+</sup> 1424 1425findWindow(filter: WindowFilter): Promise\<UiWindow> 1426 1427通过指定窗口的属性来查找目标窗口。 1428 1429**系统能力**:SystemCapability.Test.UiTest 1430 1431**参数:** 1432 1433| 参数名 | 类型 | 必填 | 说明 | 1434| ------ | ------------------------------ | ---- | ---------------- | 1435| filter | [WindowFilter](#windowfilter9) | 是 | 目标窗口的属性。 | 1436 1437**返回值:** 1438 1439| 类型 | 说明 | 1440| -------------------------------- | ------------------------------------- | 1441| Promise\<[UiWindow](#uiwindow9)> | 以Promise形式返回找到的目标窗口对象。 | 1442 1443**错误码:** 1444 1445以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1446 1447| 错误码ID | 错误信息 | 1448| -------- | ---------------------------------------- | 1449| 17000002 | API does not allow calling concurrently. | 1450 1451**示例:** 1452 1453```js 1454async function demo() { 1455 let driver = Driver.create(); 1456 let window = await driver.findWindow({actived: true}); 1457} 1458``` 1459 1460### waitForComponent<sup>9+</sup> 1461 1462waitForComponent(on: On, time: number): Promise\<Component> 1463 1464在Driver对象中,在用户给定的时间内,持续查找满足控件属性要求的目标控件。 1465 1466**系统能力**:SystemCapability.Test.UiTest 1467 1468**参数:** 1469 1470| 参数名 | 类型 | 必填 | 说明 | 1471| ------ | ---------- | ---- | -------------------------------- | 1472| On | [On](#on9) | 是 | 目标控件的属性要求。 | 1473| time | number | 是 | 查找目标控件的持续时间。单位ms。 | 1474 1475**返回值:** 1476 1477| 类型 | 说明 | 1478| --------------------------------- | --------------------------------- | 1479| Promise\<[Component](#component)> | 以Promise形式返回找到的控件对象。 | 1480 1481**错误码:** 1482 1483以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1484 1485| 错误码ID | 错误信息 | 1486| -------- | ---------------------------------------- | 1487| 17000002 | API does not allow calling concurrently. | 1488 1489**示例:** 1490 1491```js 1492async function demo() { 1493 let driver = Driver.create(); 1494 let button = await driver.waitForComponent(ON.text('next page'),500); 1495} 1496``` 1497 1498### assertComponentExist<sup>9+</sup> 1499 1500assertComponentExist(on: On): Promise\<void> 1501 1502断言API,用于断言当前界面是否存在满足给出的目标属性的控件。 1503 1504**系统能力**:SystemCapability.Test.UiTest 1505 1506**参数:** 1507 1508| 参数名 | 类型 | 必填 | 说明 | 1509| ------ | ---------- | ---- | -------------------- | 1510| on | [On](#on9) | 是 | 目标控件的属性要求。 | 1511 1512**错误码:** 1513 1514以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1515 1516| 错误码ID | 错误信息 | 1517| -------- | ---------------------------------------- | 1518| 17000002 | API does not allow calling concurrently. | 1519| 17000003 | Component existence assertion failed. | 1520 1521**示例:** 1522 1523```js 1524async function demo() { 1525 let driver = Driver.create(); 1526 await driver.assertComponentExist(ON.text('next page')); 1527} 1528``` 1529 1530### pressBack<sup>9+</sup> 1531 1532pressBack(): Promise\<void> 1533 1534Driver对象进行点击BACK键的操作。 1535 1536**系统能力**:SystemCapability.Test.UiTest 1537 1538**错误码:** 1539 1540以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1541 1542| 错误码ID | 错误信息 | 1543| -------- | ---------------------------------------- | 1544| 17000002 | API does not allow calling concurrently. | 1545 1546**示例:** 1547 1548```js 1549async function demo() { 1550 let driver = Driver.create(); 1551 await driver.pressBack(); 1552} 1553``` 1554 1555### triggerKey<sup>9+</sup> 1556 1557triggerKey(keyCode: number): Promise\<void> 1558 1559Driver对象采取如下操作:传入key值实现模拟点击对应按键的效果。 1560 1561**系统能力**:SystemCapability.Test.UiTest 1562 1563**参数:** 1564 1565| 参数名 | 类型 | 必填 | 说明 | 1566| ------- | ------ | ---- | ------------- | 1567| keyCode | number | 是 | 指定的key值。 | 1568 1569**错误码:** 1570 1571以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1572 1573| 错误码ID | 错误信息 | 1574| -------- | ---------------------------------------- | 1575| 17000002 | API does not allow calling concurrently. | 1576 1577**示例:** 1578 1579```js 1580async function demo() { 1581 let driver = Driver.create(); 1582 await driver.triggerKey(123); 1583} 1584``` 1585 1586### triggerCombineKeys<sup>9+</sup> 1587 1588triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\<void> 1589 1590Driver对象通过给定的key值,找到对应组合键并点击。例如,Key值为(2072, 2019)时,Driver对象找到key值对应的组合键并点击,如ctrl+c。 1591 1592**系统能力**:SystemCapability.Test.UiTest 1593 1594**参数:** 1595 1596| 参数名 | 类型 | 必填 | 说明 | 1597| ------ | ------ | ---- | ------------------- | 1598| key0 | number | 是 | 指定的第一个key值。 | 1599| key1 | number | 是 | 指定的第二个key值。 | 1600| key2 | number | 否 | 指定的第三个key值。 | 1601 1602**错误码:** 1603 1604以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1605 1606| 错误码ID | 错误信息 | 1607| -------- | ---------------------------------------- | 1608| 17000002 | API does not allow calling concurrently. | 1609 1610**示例:** 1611 1612```js 1613async function demo() { 1614 let driver = Driver.create(); 1615 await driver.triggerCombineKeys(2072, 2047, 2035); 1616} 1617``` 1618 1619 1620### click<sup>9+</sup> 1621 1622click(x: number, y: number): Promise\<void> 1623 1624Driver对象采取如下操作:在目标坐标点单击。 1625 1626**系统能力**:SystemCapability.Test.UiTest 1627 1628**参数:** 1629 1630| 参数名 | 类型 | 必填 | 说明 | 1631| ------ | ------ | ---- | -------------------------------------- | 1632| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 1633| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 1634 1635**错误码:** 1636 1637以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1638 1639| 错误码ID | 错误信息 | 1640| -------- | ---------------------------------------- | 1641| 17000002 | API does not allow calling concurrently. | 1642 1643**示例:** 1644 1645```js 1646async function demo() { 1647 let driver = Driver.create(); 1648 await driver.click(100,100); 1649} 1650``` 1651 1652### doubleClick<sup>9+</sup> 1653 1654doubleClick(x: number, y: number): Promise\<void> 1655 1656Driver对象采取如下操作:在目标坐标点双击。 1657 1658**系统能力**:SystemCapability.Test.UiTest 1659 1660**参数:** 1661 1662| 参数名 | 类型 | 必填 | 说明 | 1663| ------ | ------ | ---- | -------------------------------------- | 1664| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 1665| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 1666 1667**错误码:** 1668 1669以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1670 1671| 错误码ID | 错误信息 | 1672| -------- | ---------------------------------------- | 1673| 17000002 | API does not allow calling concurrently. | 1674 1675**示例:** 1676 1677```js 1678async function demo() { 1679 let driver = Driver.create(); 1680 await driver.doubleClick(100,100); 1681} 1682``` 1683 1684### longClick<sup>9+</sup> 1685 1686longClick(x: number, y: number): Promise\<void> 1687 1688Driver对象采取如下操作:在目标坐标点长按。 1689 1690**系统能力**:SystemCapability.Test.UiTest 1691 1692**参数:** 1693 1694| 参数名 | 类型 | 必填 | 说明 | 1695| ------ | ------ | ---- | -------------------------------------- | 1696| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 1697| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 1698 1699**错误码:** 1700 1701以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1702 1703| 错误码ID | 错误信息 | 1704| -------- | ---------------------------------------- | 1705| 17000002 | API does not allow calling concurrently. | 1706 1707**示例:** 1708 1709```js 1710async function demo() { 1711 let driver = Driver.create(); 1712 await driver.longClick(100,100); 1713} 1714``` 1715 1716### swipe<sup>9+</sup> 1717 1718swipe(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void> 1719 1720Driver对象采取如下操作:从起始坐标点滑向目的坐标点。 1721 1722**系统能力**:SystemCapability.Test.UiTest 1723 1724**参数:** 1725 1726| 参数名 | 类型 | 必填 | 说明 | 1727| ------ | ------ | ---- | ------------------------------------------------------------ | 1728| startx | number | 是 | 以number的形式传入起始点的横坐标信息。 | 1729| starty | number | 是 | 以number的形式传入起始点的纵坐标信息。 | 1730| endx | number | 是 | 以number的形式传入目的点的横坐标信息。 | 1731| endy | number | 是 | 以number的形式传入目的点的纵坐标信息。 | 1732| speed | number | 否 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 1733 1734**错误码:** 1735 1736以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1737 1738| 错误码ID | 错误信息 | 1739| -------- | ---------------------------------------- | 1740| 17000002 | API does not allow calling concurrently. | 1741 1742**示例:** 1743 1744```js 1745async function demo() { 1746 let driver = Driver.create(); 1747 await driver.swipe(100,100,200,200,600); 1748} 1749``` 1750 1751### drag<sup>9+</sup> 1752 1753drag(startx: number, starty: number, endx: number, endy: number, speed?: number): Promise\<void> 1754 1755Driver对象采取如下操作:从起始坐标点拖拽至目的坐标点。 1756 1757**系统能力**:SystemCapability.Test.UiTest 1758 1759**参数:** 1760 1761| 参数名 | 类型 | 必填 | 说明 | 1762| ------ | ------ | ---- | ------------------------------------------------------------ | 1763| startx | number | 是 | 以number的形式传入起始点的横坐标信息。 | 1764| starty | number | 是 | 以number的形式传入起始点的纵坐标信息。 | 1765| endx | number | 是 | 以number的形式传入目的点的横坐标信息。 | 1766| endy | number | 是 | 以number的形式传入目的点的纵坐标信息。 | 1767| speed | number | 否 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 1768 1769**错误码:** 1770 1771以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1772 1773| 错误码ID | 错误信息 | 1774| -------- | ---------------------------------------- | 1775| 17000002 | API does not allow calling concurrently. | 1776 1777**示例:** 1778 1779```js 1780async function demo() { 1781 let driver = Driver.create(); 1782 await driver.drag(100,100,200,200,600); 1783} 1784``` 1785 1786### screenCap<sup>9+</sup> 1787 1788screenCap(savePath: string): Promise\<boolean> 1789 1790Driver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。 1791 1792**系统能力**:SystemCapability.Test.UiTest 1793 1794**参数:** 1795 1796| 参数名 | 类型 | 必填 | 说明 | 1797| -------- | ------ | ---- | -------------- | 1798| savePath | string | 是 | 文件保存路径。 | 1799 1800**返回值:** 1801 1802| 类型 | 说明 | 1803| ----------------- | -------------------------------------- | 1804| Promise\<boolean> | 截图操作是否成功完成。成功完成为true。 | 1805 1806**错误码:** 1807 1808以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1809 1810| 错误码ID | 错误信息 | 1811| -------- | ---------------------------------------- | 1812| 17000002 | API does not allow calling concurrently. | 1813 1814**示例:** 1815 1816```js 1817async function demo() { 1818 let driver = Driver.create(); 1819 await driver.screenCap('/local/tmp/1.png'); 1820} 1821``` 1822 1823### setDisplayRotation<sup>9+</sup> 1824 1825setDisplayRotation(rotation: DisplayRotation): Promise\<void> 1826 1827将设备的屏幕显示方向设置为指定的显示方向。 1828 1829**系统能力**:SystemCapability.Test.UiTest 1830 1831**参数:** 1832 1833| 参数名 | 类型 | 必填 | 说明 | 1834| -------- | ------------------------------------ | ---- | ---------------- | 1835| rotation | [DisplayRotation](#displayrotation9) | 是 | 设备的显示方向。 | 1836 1837**错误码:** 1838 1839以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1840 1841| 错误码ID | 错误信息 | 1842| -------- | ---------------------------------------- | 1843| 17000002 | API does not allow calling concurrently. | 1844 1845**示例:** 1846 1847```js 1848async function demo() { 1849 let driver = Driver.create(); 1850 await driver.setDisplayRotation(DisplayRotation.ROTATION_180); 1851} 1852``` 1853 1854### getDisplayRotation<sup>9+</sup> 1855 1856getDisplayRotation(): Promise\<DisplayRotation> 1857 1858获取当前设备的屏幕显示方向。 1859 1860**系统能力**:SystemCapability.Test.UiTest 1861 1862**返回值:** 1863 1864| 类型 | 说明 | 1865| ---------------------------------------------- | --------------------------------------- | 1866| Promise\<[DisplayRotation](#displayrotation9)> | 以Promise的形式返回当前设备的显示方向。 | 1867 1868**错误码:** 1869 1870以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1871 1872| 错误码ID | 错误信息 | 1873| -------- | ---------------------------------------- | 1874| 17000002 | API does not allow calling concurrently. | 1875 1876**示例:** 1877 1878```js 1879async function demo() { 1880 let driver = Driver.create(); 1881 let rotation = await driver.getDisplayRotation(); 1882} 1883``` 1884 1885### setDisplayRotationEnabled<sup>9+</sup> 1886 1887setDisplayRotationEnabled(enabled: boolean): Promise\<void> 1888 1889启用/禁用设备旋转屏幕的功能。 1890 1891**系统能力**:SystemCapability.Test.UiTest 1892 1893**参数:** 1894 1895| 参数名 | 类型 | 必填 | 说明 | 1896| ------- | ------- | ---- | ------------------------------------------------------- | 1897| enabled | boolean | 是 | 能否旋转屏幕的标识,true:可以旋转,false:不可以旋转。 | 1898 1899**错误码:** 1900 1901以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1902 1903| 错误码ID | 错误信息 | 1904| -------- | ---------------------------------------- | 1905| 17000002 | API does not allow calling concurrently. | 1906 1907**示例:** 1908 1909```js 1910async function demo() { 1911 let driver = Driver.create(); 1912 await driver.setDisplayRotationEnabled(false); 1913} 1914``` 1915 1916### getDisplaySize<sup>9+</sup> 1917 1918getDisplaySize(): Promise\<Point> 1919 1920获取当前设备的屏幕大小。 1921 1922**系统能力**:SystemCapability.Test.UiTest 1923 1924**返回值:** 1925 1926| 类型 | 说明 | 1927| -------------------------- | --------------------------------------- | 1928| Promise\<[Point](#point9)> | 以Promise的形式返回当前设备的屏幕大小。 | 1929 1930**错误码:** 1931 1932以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1933 1934| 错误码ID | 错误信息 | 1935| -------- | ---------------------------------------- | 1936| 17000002 | API does not allow calling concurrently. | 1937 1938**示例:** 1939 1940```js 1941async function demo() { 1942 let driver = Driver.create(); 1943 let size = await driver.getDisplaySize(); 1944} 1945``` 1946 1947### getDisplayDensity<sup>9+</sup> 1948 1949getDisplayDensity(): Promise\<Point> 1950 1951获取当前设备屏幕的分辨率。 1952 1953**系统能力**:SystemCapability.Test.UiTest 1954 1955**返回值:** 1956 1957| 类型 | 说明 | 1958| -------------------------- | ----------------------------------------- | 1959| Promise\<[Point](#point9)> | 以Promise的形式返回当前设备屏幕的分辨率。 | 1960 1961**错误码:** 1962 1963以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1964 1965| 错误码ID | 错误信息 | 1966| -------- | ---------------------------------------- | 1967| 17000002 | API does not allow calling concurrently. | 1968 1969**示例:** 1970 1971```js 1972async function demo() { 1973 let driver = Driver.create(); 1974 let density = await driver.getDisplayDensity(); 1975} 1976``` 1977 1978### wakeUpDisplay<sup>9+</sup> 1979 1980wakeUpDisplay(): Promise\<void> 1981 1982唤醒当前设备即设备亮屏。 1983 1984**系统能力**:SystemCapability.Test.UiTest 1985 1986**错误码:** 1987 1988以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 1989 1990| 错误码ID | 错误信息 | 1991| -------- | ---------------------------------------- | 1992| 17000002 | API does not allow calling concurrently. | 1993 1994**示例:** 1995 1996```js 1997async function demo() { 1998 let driver = Driver.create(); 1999 await driver.wakeUpDisplay(); 2000} 2001``` 2002 2003### pressHome<sup>9+</sup> 2004 2005pressHome(): Promise\<void> 2006 2007设备返回到桌面。 2008 2009**系统能力**:SystemCapability.Test.UiTest 2010 2011**错误码:** 2012 2013以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2014 2015| 错误码ID | 错误信息 | 2016| -------- | ---------------------------------------- | 2017| 17000002 | API does not allow calling concurrently. | 2018 2019**示例:** 2020 2021```js 2022async function demo() { 2023 let driver = Driver.create(); 2024 await driver.pressHome(); 2025} 2026``` 2027 2028### waitForIdle<sup>9+</sup> 2029 2030waitForIdle(idleTime: number, timeout: number): Promise\<boolean> 2031 2032判断当前界面的所有控件是否已经空闲。 2033 2034**系统能力**:SystemCapability.Test.UiTest 2035 2036**参数:** 2037 2038| 参数名 | 类型 | 必填 | 说明 | 2039| -------- | ------ | ---- | ------------------------------------------------------------ | 2040| idleTime | number | 是 | 空闲时间的阈值。在这个时间段控件不发生变化,视为该控件空闲,单位:毫秒。 | 2041| timeout | number | 是 | 等待空闲的最大时间,单位:毫秒。 | 2042 2043**返回值:** 2044 2045| 类型 | 说明 | 2046| ----------------- | --------------------------------------------------- | 2047| Promise\<boolean> | 以Promise的形式返回当前界面的所有控件是否已经空闲。 | 2048 2049**错误码:** 2050 2051以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2052 2053| 错误码ID | 错误信息 | 2054| -------- | ---------------------------------------- | 2055| 17000002 | API does not allow calling concurrently. | 2056 2057**示例:** 2058 2059```js 2060async function demo() { 2061 let driver = Driver.create(); 2062 let idled = await driver.waitForIdle(4000,5000); 2063} 2064``` 2065 2066### fling<sup>9+</sup> 2067 2068fling(from: Point, to: Point, stepLen: number, speed: number): Promise\<void> 2069 2070模拟手指滑动后脱离屏幕的快速滑动操作。 2071 2072**系统能力**:SystemCapability.Test.UiTest 2073 2074**参数:** 2075 2076| 参数名 | 类型 | 必填 | 说明 | 2077| ------- | ---------------- | ---- | ------------------------------------------------------------ | 2078| from | [Point](#point9) | 是 | 手指接触屏幕的起始点坐标。 | 2079| to | [Point](#point9) | 是 | 手指离开屏幕时的坐标点。 | 2080| stepLen | number | 是 | 间隔距离,单位:像素点。 | 2081| speed | number | 是 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 2082 2083**错误码:** 2084 2085以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2086 2087| 错误码ID | 错误信息 | 2088| -------- | ---------------------------------------- | 2089| 17000002 | API does not allow calling concurrently. | 2090 2091**示例:** 2092 2093```js 2094async function demo() { 2095 let driver = Driver.create(); 2096 await driver.fling({x: 500, y: 480},{x: 450, y: 480},5,600); 2097} 2098``` 2099 2100### injectMultiPointerAction<sup>9+</sup> 2101 2102injectMultiPointerAction(pointers: PointerMatrix, speed?: number): Promise\<boolean> 2103 2104向设备注入多指操作。 2105 2106**系统能力**:SystemCapability.Test.UiTest 2107 2108**参数:** 2109 2110| 参数名 | 类型 | 必填 | 说明 | 2111| -------- | -------------------------------- | ---- | ------------------------------------------------------------ | 2112| pointers | [PointerMatrix](#pointermatrix9) | 是 | 滑动轨迹,包括操作手指个数和滑动坐标序列。 | 2113| speed | number | 否 | 滑动速率,范围:200-15000,不在范围内设为默认值为600,单位:像素点/秒。 | 2114 2115**返回值:** 2116 2117| 类型 | 说明 | 2118| ----------------- | ------------------------------------- | 2119| Promise\<boolean> | 以Promise的形式返回操作是否成功完成。 | 2120 2121**错误码:** 2122 2123以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2124 2125| 错误码ID | 错误信息 | 2126| -------- | ---------------------------------------- | 2127| 17000002 | API does not allow calling concurrently. | 2128 2129**示例:** 2130 2131```js 2132async function demo() { 2133 let driver = Driver.create(); 2134 let pointers = PointerMatrix.create(2,3); 2135 pointers.setPoint(0,0,{x:230,y:480}); 2136 pointers.setPoint(0,1,{x:250,y:380}); 2137 pointers.setPoint(0,2,{x:270,y:280}); 2138 pointers.setPoint(1,0,{x:230,y:680}); 2139 pointers.setPoint(1,1,{x:240,y:580}); 2140 pointers.setPoint(1,2,{x:250,y:480}); 2141 await driver.injectMultiPointerAction(pointers); 2142} 2143``` 2144 2145## PointerMatrix<sup>9+</sup> 2146 2147存储多指操作中每根手指每一步动作的坐标点及其行为的二维数组。 2148 2149### create<sup>9+</sup> 2150 2151static create(fingers: number, steps: number): PointerMatrix 2152 2153静态方法,构造一个PointerMatrix对象,并返回该对象。 2154 2155**系统能力**:SystemCapability.Test.UiTest 2156 2157**参数:** 2158 2159| 参数名 | 类型 | 必填 | 说明 | 2160| ------- | ------ | ---- | ------------------------------------------ | 2161| fingers | number | 是 | 多指操作中注入的手指数,取值范围:[1,10]。 | 2162| steps | number | 是 | 每根手指操作的步骤数,取值范围:[1,1000]。 | 2163 2164**返回值:** 2165 2166| 类型 | 说明 | 2167| -------------------------------- | ----------------------------- | 2168| [PointerMatrix](#pointermatrix9) | 返回构造的PointerMatrix对象。 | 2169 2170**示例:** 2171 2172```js 2173async function demo() { 2174 let pointerMatrix = PointerMatrix.create(2,3); 2175} 2176``` 2177 2178### setPoint<sup>9+</sup> 2179 2180setPoint(finger: number, step: number, point: Point): void 2181 2182设置PointerMatrix对象中指定手指和步骤对应动作的坐标点。 2183 2184**系统能力**:SystemCapability.Test.UiTest 2185 2186**参数:** 2187 2188| 参数名 | 类型 | 必填 | 说明 | 2189| ------ | ---------------- | ---- | ---------------- | 2190| finger | number | 是 | 手指的序号。 | 2191| step | number | 是 | 步骤的序号。 | 2192| point | [Point](#point9) | 是 | 该行为的坐标点。 | 2193 2194**示例:** 2195 2196```js 2197async function demo() { 2198 let pointers = PointerMatrix.create(2,3); 2199 pointers.setPoint(0,0,{x:230,y:480}); 2200 pointers.setPoint(0,1,{x:250,y:380}); 2201 pointers.setPoint(0,2,{x:270,y:280}); 2202 pointers.setPoint(1,0,{x:230,y:680}); 2203 pointers.setPoint(1,1,{x:240,y:580}); 2204 pointers.setPoint(1,2,{x:250,y:480}); 2205} 2206``` 2207 2208## UiWindow<sup>9+</sup> 2209 2210UiWindow代表了UI界面上的一个窗口,提供窗口属性获取,窗口拖动、调整窗口大小等能力。 2211该类提供的所有方法都使用Promise方式作为异步方法,需使用await方式调用。 2212 2213### getBundleName<sup>9+</sup> 2214 2215getBundleName(): Promise\<string> 2216 2217获取窗口归属应用的包名信息。 2218 2219**系统能力**:SystemCapability.Test.UiTest 2220 2221**返回值:** 2222 2223| 类型 | 说明 | 2224| ---------------- | ----------------------------------------- | 2225| Promise\<string> | 以Promise形式返回窗口归属应用的包名信息。 | 2226 2227**错误码:** 2228 2229以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2230 2231| 错误码ID | 错误信息 | 2232| -------- | ---------------------------------------- | 2233| 17000002 | API does not allow calling concurrently. | 2234| 17000004 | Component lost/UiWindow lost. | 2235 2236**示例:** 2237 2238```js 2239async function demo() { 2240 let driver = Driver.create(); 2241 let window = await driver.findWindow({actived: true}); 2242 let name = await window.getBundleName(); 2243} 2244``` 2245 2246### getBounds<sup>9+</sup> 2247 2248getBounds(): Promise\<Rect> 2249 2250获取窗口的边框信息。 2251 2252**系统能力**:SystemCapability.Test.UiTest 2253 2254**返回值:** 2255 2256| 类型 | 说明 | 2257| ------------------------ | --------------------------------- | 2258| Promise\<[Rect](#rect9)> | 以Promise形式返回窗口的边框信息。 | 2259 2260**错误码:** 2261 2262以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2263 2264| 错误码ID | 错误信息 | 2265| -------- | ---------------------------------------- | 2266| 17000002 | API does not allow calling concurrently. | 2267| 17000004 | Component lost/UiWindow lost. | 2268 2269**示例:** 2270 2271```js 2272async function demo() { 2273 let driver = Driver.create(); 2274 let window = await driver.findWindow({actived: true}); 2275 let rect = await window.getBounds(); 2276} 2277``` 2278 2279### getTitle<sup>9+</sup> 2280 2281getTitle(): Promise\<string> 2282 2283获取窗口的标题信息。 2284 2285**系统能力**:SystemCapability.Test.UiTest 2286 2287**返回值:** 2288 2289| 类型 | 说明 | 2290| ---------------- | --------------------------------- | 2291| Promise\<string> | 以Promise形式返回窗口的标题信息。 | 2292 2293**错误码:** 2294 2295以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2296 2297| 错误码ID | 错误信息 | 2298| -------- | ---------------------------------------- | 2299| 17000002 | API does not allow calling concurrently. | 2300| 17000004 | Component lost/UiWindow lost. | 2301 2302**示例:** 2303 2304```js 2305async function demo() { 2306 let driver = Driver.create(); 2307 let window = await driver.findWindow({actived: true}); 2308 let rect = await window.getTitle(); 2309} 2310``` 2311 2312### getWindowMode<sup>9+</sup> 2313 2314getWindowMode(): Promise\<WindowMode> 2315 2316获取窗口的窗口模式信息。 2317 2318**系统能力**:SystemCapability.Test.UiTest 2319 2320**返回值:** 2321 2322| 类型 | 说明 | 2323| ------------------------------------ | ------------------------------------- | 2324| Promise\<[WindowMode](#windowmode9)> | 以Promise形式返回窗口的窗口模式信息。 | 2325 2326**错误码:** 2327 2328以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2329 2330| 错误码ID | 错误信息 | 2331| -------- | ---------------------------------------- | 2332| 17000002 | API does not allow calling concurrently. | 2333| 17000004 | Component lost/UiWindow lost. | 2334 2335**示例:** 2336 2337```js 2338async function demo() { 2339 let driver = Driver.create(); 2340 let window = await driver.findWindow({actived: true}); 2341 let mode = await window.getWindowMode(); 2342} 2343``` 2344 2345### isFocused<sup>9+</sup> 2346 2347isFocused(): Promise\<boolean> 2348 2349判断窗口是否处于获焦状态。 2350 2351**系统能力**:SystemCapability.Test.UiTest 2352 2353**返回值:** 2354 2355| 类型 | 说明 | 2356| ----------------- | ------------------------------------------------------------ | 2357| Promise\<boolean> | 以Promise形式返回窗口对象是否获取获焦状态,true:获焦,false:未获焦。 | 2358 2359**错误码:** 2360 2361以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2362 2363| 错误码ID | 错误信息 | 2364| -------- | ---------------------------------------- | 2365| 17000002 | API does not allow calling concurrently. | 2366| 17000004 | Component lost/UiWindow lost. | 2367 2368**示例:** 2369 2370```js 2371async function demo() { 2372 let driver = Driver.create(); 2373 let window = await driver.findWindow({actived: true}); 2374 let focused = await window.isFocused(); 2375} 2376``` 2377 2378### isActived<sup>9+</sup> 2379 2380isActived(): Promise\<boolean> 2381 2382判断窗口是否为用户正在交互窗口。 2383 2384**系统能力**:SystemCapability.Test.UiTest 2385 2386**返回值:** 2387 2388| 类型 | 说明 | 2389| ----------------- | ------------------------------------------------------------ | 2390| Promise\<boolean> | 以Promise形式返回窗口对象是否为用户正在交互窗口,true:交互窗口,false:非交互窗口。 | 2391 2392**错误码:** 2393 2394以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2395 2396| 错误码ID | 错误信息 | 2397| -------- | ---------------------------------------- | 2398| 17000002 | API does not allow calling concurrently. | 2399| 17000004 | Component lost/UiWindow lost. | 2400 2401**示例:** 2402 2403```js 2404async function demo() { 2405 let driver = Driver.create(); 2406 let window = await driver.findWindow({actived: true}); 2407 let focused = await window.isActived(); 2408} 2409``` 2410 2411### focus<sup>9+</sup> 2412 2413focus(): Promise\<void> 2414 2415让窗口获焦。 2416 2417**系统能力**:SystemCapability.Test.UiTest 2418 2419**错误码:** 2420 2421以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2422 2423| 错误码ID | 错误信息 | 2424| -------- | ---------------------------------------- | 2425| 17000002 | API does not allow calling concurrently. | 2426| 17000004 | Component lost/UiWindow lost. | 2427 2428**示例:** 2429 2430```js 2431async function demo() { 2432 let driver = Driver.create(); 2433 let window = await driver.findWindow({actived: true}); 2434 await window.focus(); 2435} 2436``` 2437 2438### moveTo<sup>9+</sup> 2439 2440moveTo(x: number, y: number): Promise\<void> 2441 2442将窗口移动到目标点。适用于支持移动的窗口。 2443 2444**系统能力**:SystemCapability.Test.UiTest 2445 2446**参数:** 2447 2448| 参数名 | 类型 | 必填 | 说明 | 2449| ------ | ------ | ---- | -------------------------------------- | 2450| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 2451| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 2452 2453**错误码:** 2454 2455以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2456 2457| 错误码ID | 错误信息 | 2458| -------- | ---------------------------------------- | 2459| 17000002 | API does not allow calling concurrently. | 2460| 17000004 | Component lost/UiWindow lost. | 2461| 17000005 | This operation is not supported. | 2462 2463**示例:** 2464 2465```js 2466async function demo() { 2467 let driver = Driver.create(); 2468 let window = await driver.findWindow({actived: true}); 2469 await window.moveTo(100, 100); 2470} 2471``` 2472 2473### resize<sup>9+</sup> 2474 2475resize(wide: number, height: number, direction: ResizeDirection): Promise\<void> 2476 2477根据传入的宽、高和调整方向来调整窗口的大小。适用于支持调整大小的窗口。 2478 2479**系统能力**:SystemCapability.Test.UiTest 2480 2481**参数:** 2482 2483| 参数名 | 类型 | 必填 | 说明 | 2484| --------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 2485| wide | number | 是 | 以number的形式传入调整后窗口的宽度。 | 2486| height | number | 是 | 以number的形式传入调整后窗口的高度。 | 2487| direction | [ResizeDirection](#resizedirection9) | 是 | 以[ResizeDirection](#resizedirection9)的形式传入窗口调整的方向。 | 2488 2489**错误码:** 2490 2491以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2492 2493| 错误码ID | 错误信息 | 2494| -------- | ---------------------------------------- | 2495| 17000002 | API does not allow calling concurrently. | 2496| 17000004 | Component lost/UiWindow lost. | 2497| 17000005 | This operation is not supported. | 2498 2499**示例:** 2500 2501```js 2502async function demo() { 2503 let driver = Driver.create(); 2504 let window = await driver.findWindow({actived: true}); 2505 await window.resize(100, 100, ResizeDirection.LEFT); 2506} 2507``` 2508 2509### split<sup>9+</sup> 2510 2511split(): Promise\<void> 2512 2513将窗口模式切换成分屏模式。适用于支持切换分屏模式的窗口。 2514 2515**系统能力**:SystemCapability.Test.UiTest 2516 2517**错误码:** 2518 2519以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2520 2521| 错误码ID | 错误信息 | 2522| -------- | ---------------------------------------- | 2523| 17000002 | API does not allow calling concurrently. | 2524| 17000004 | Component lost/UiWindow lost. | 2525| 17000005 | This operation is not supported. | 2526 2527**示例:** 2528 2529```js 2530async function demo() { 2531 let driver = Driver.create(); 2532 let window = await driver.findWindow({actived: true}); 2533 await window.split(); 2534} 2535``` 2536 2537### maximize<sup>9+</sup> 2538 2539maximize(): Promise\<void> 2540 2541将窗口最大化。适用于支持窗口最大化操作的窗口。 2542 2543**系统能力**:SystemCapability.Test.UiTest 2544 2545**错误码:** 2546 2547以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2548 2549| 错误码ID | 错误信息 | 2550| -------- | ---------------------------------------- | 2551| 17000002 | API does not allow calling concurrently. | 2552| 17000004 | Component lost/UiWindow lost. | 2553| 17000005 | This operation is not supported. | 2554 2555**示例:** 2556 2557```js 2558async function demo() { 2559 let driver = Driver.create(); 2560 let window = await driver.findWindow({actived: true}); 2561 await window.maximize(); 2562} 2563``` 2564 2565### minimize<sup>9+</sup> 2566 2567minimize(): Promise\<void> 2568 2569将窗口最小化。适用于支持窗口最小化操作的窗口。 2570 2571**系统能力**:SystemCapability.Test.UiTest 2572 2573**错误码:** 2574 2575以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2576 2577| 错误码ID | 错误信息 | 2578| -------- | ---------------------------------------- | 2579| 17000002 | API does not allow calling concurrently. | 2580| 17000004 | Component lost/UiWindow lost. | 2581| 17000005 | This operation is not supported. | 2582 2583**示例:** 2584 2585```js 2586async function demo() { 2587 let driver = Driver.create(); 2588 let window = await driver.findWindow({actived: true}); 2589 await window.minimize(); 2590} 2591``` 2592 2593### resume<sup>9+</sup> 2594 2595resume(): Promise\<void> 2596 2597将窗口恢复到之前的窗口模式。 2598 2599**系统能力**:SystemCapability.Test.UiTest 2600 2601**错误码:** 2602 2603以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2604 2605| 错误码ID | 错误信息 | 2606| -------- | ---------------------------------------- | 2607| 17000002 | API does not allow calling concurrently. | 2608| 17000004 | Component lost/UiWindow lost. | 2609| 17000005 | This operation is not supported. | 2610 2611**示例:** 2612 2613```js 2614async function demo() { 2615 let driver = Driver.create(); 2616 let window = await driver.findWindow({actived: true}); 2617 await window.resume(); 2618} 2619``` 2620 2621### close<sup>9+</sup> 2622 2623close(): Promise\<void> 2624 2625将窗口关闭。 2626 2627**系统能力**:SystemCapability.Test.UiTest 2628 2629**错误码:** 2630 2631以下错误码的详细介绍请参见[uitest测试框架错误码](../errorcodes/errorcode-uitest.md)。 2632 2633| 错误码ID | 错误信息 | 2634| -------- | ---------------------------------------- | 2635| 17000002 | API does not allow calling concurrently. | 2636| 17000004 | Component lost/UiWindow lost. | 2637| 17000005 | This operation is not supported. | 2638 2639**示例:** 2640 2641```js 2642async function demo() { 2643 let driver = Driver.create(); 2644 let window = await driver.findWindow({actived: true}); 2645 await window.close(); 2646} 2647``` 2648 2649## By<sup>(deprecated)</sup> 2650 2651UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。<br> 2652By提供的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对象。 2653 2654从API version 9开始不再维护,建议使用[On<sup>9+</sup>](#on9)。 2655 2656```js 2657BY.text('123').type('button'); 2658``` 2659 2660### text<sup>(deprecated)</sup> 2661 2662text(txt: string, pattern?: MatchPattern): By 2663 2664指定目标控件文本属性,支持多种匹配模式,返回By对象自身。 2665 2666从API version 9开始不再维护,建议使用[text<sup>9+</sup>](#text9)。 2667 2668**系统能力**:SystemCapability.Test.UiTest 2669 2670**参数:** 2671 2672| 参数名 | 类型 | 必填 | 说明 | 2673| ------- | ----------------------------- | ---- | --------------------------------------------------- | 2674| txt | string | 是 | 指定控件文本,用于匹配目标控件文本。 | 2675| pattern | [MatchPattern](#matchpattern) | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern)。 | 2676 2677**返回值:** 2678 2679| 类型 | 说明 | 2680| ------------------- | ---------------------------------- | 2681| [By](#bydeprecated) | 返回指定目标控件文本属性的By对象。 | 2682 2683**示例:** 2684 2685```js 2686let by = BY.text('123'); // 使用静态构造器BY创建by对象,指定目标控件的text属性。 2687``` 2688 2689 2690### key<sup>(deprecated)</sup> 2691 2692key(key: string): By 2693 2694指定目标控件key值属性,返回By对象自身。 2695 2696从API version 9开始不再维护,建议使用[id<sup>9+</sup>](#id9)。 2697 2698**系统能力**:SystemCapability.Test.UiTest 2699 2700**参数:** 2701 2702| 参数名 | 类型 | 必填 | 说明 | 2703| ------ | ------ | ---- | ----------------- | 2704| key | string | 是 | 指定控件的Key值。 | 2705 2706**返回值:** 2707 2708| 类型 | 说明 | 2709| ------------------- | ----------------------------------- | 2710| [By](#bydeprecated) | 返回指定目标控件key值属性的By对象。 | 2711 2712**示例:** 2713 2714```js 2715let by = BY.key('123'); // 使用静态构造器BY创建by对象,指定目标控件的key值属性。 2716``` 2717 2718 2719### id<sup>(deprecated)</sup> 2720 2721id(id: number): By 2722 2723指定目标控件id属性,返回By对象自身。 2724 2725从API version 9开始废弃。 2726 2727**系统能力**:SystemCapability.Test.UiTest 2728 2729**参数:** 2730 2731| 参数名 | 类型 | 必填 | 说明 | 2732| ------ | ------ | ---- | ---------------- | 2733| id | number | 是 | 指定控件的id值。 | 2734 2735**返回值:** 2736 2737| 类型 | 说明 | 2738| ------------------- | -------------------------------- | 2739| [By](#bydeprecated) | 返回指定目标控件id属性的By对象。 | 2740 2741**示例:** 2742 2743```js 2744let by = BY.id(123); // 使用静态构造器BY创建by对象,指定目标控件的id属性。 2745``` 2746 2747 2748### type<sup>(deprecated)</sup> 2749 2750type(tp: string): By 2751 2752指定目标控件的控件类型属性,返回By对象自身。 2753 2754从API version 9开始不再维护,建议使用[type<sup>9+</sup>](#type9)。 2755 2756**系统能力**:SystemCapability.Test.UiTest 2757 2758**参数:** 2759 2760| 参数名 | 类型 | 必填 | 说明 | 2761| ------ | ------ | ---- | -------------- | 2762| tp | string | 是 | 指定控件类型。 | 2763 2764**返回值:** 2765 2766| 类型 | 说明 | 2767| ------------------- | ---------------------------------------- | 2768| [By](#bydeprecated) | 返回指定目标控件的控件类型属性的By对象。 | 2769 2770**示例:** 2771 2772```js 2773let by = BY.type('button'); // 使用静态构造器BY创建by对象,指定目标控件的控件类型属性。 2774``` 2775 2776 2777### clickable<sup>(deprecated)</sup> 2778 2779clickable(b?: boolean): By 2780 2781指定目标控件的可点击状态属性,返回By对象自身。 2782 2783从API version 9开始不再维护,建议使用[clickable<sup>9+</sup>](#clickable9)。 2784 2785**系统能力**:SystemCapability.Test.UiTest 2786 2787**参数:** 2788 2789| 参数名 | 类型 | 必填 | 说明 | 2790| ------ | ------- | ---- | ------------------------------------------------------------ | 2791| b | boolean | 否 | 指定控件可点击状态,true:可点击,false:不可点击。默认为true。 | 2792 2793**返回值:** 2794 2795| 类型 | 说明 | 2796| ------------------- | ------------------------------------------ | 2797| [By](#bydeprecated) | 返回指定目标控件的可点击状态属性的By对象。 | 2798 2799**示例:** 2800 2801```js 2802let by = BY.clickable(true); // 使用静态构造器BY创建by对象,指定目标控件的可点击状态属性。 2803``` 2804 2805 2806### scrollable<sup>(deprecated)</sup> 2807 2808scrollable(b?: boolean): By 2809 2810指定目标控件的可滑动状态属性,返回By对象自身。 2811 2812从API version 9开始不再维护,建议使用[scrollable<sup>9+</sup>](#scrollable9)。 2813 2814**系统能力**:SystemCapability.Test.UiTest 2815 2816**参数:** 2817 2818| 参数名 | 类型 | 必填 | 说明 | 2819| ------ | ------- | ---- | ----------------------------------------------------------- | 2820| b | boolean | 否 | 控件可滑动状态,true:可滑动,false:不可滑动。默认为true。 | 2821 2822**返回值:** 2823 2824| 类型 | 说明 | 2825| ------------------- | ------------------------------------------ | 2826| [By](#bydeprecated) | 返回指定目标控件的可滑动状态属性的By对象。 | 2827 2828**示例:** 2829 2830```js 2831let by = BY.scrollable(true); // 使用静态构造器BY创建by对象,指定目标控件的可滑动状态属性。 2832``` 2833 2834### enabled<sup>(deprecated)</sup> 2835 2836enabled(b?: boolean): By 2837 2838指定目标控件的使能状态属性,返回By对象自身。 2839 2840从API version 9开始不再维护,建议使用[enabled<sup>9+</sup>](#enabled9)。 2841 2842**系统能力**:SystemCapability.Test.UiTest 2843 2844**参数:** 2845 2846| 参数名 | 类型 | 必填 | 说明 | 2847| ------ | ------- | ---- | --------------------------------------------------------- | 2848| b | boolean | 否 | 指定控件使能状态,true:使能,false:未使能。默认为true。 | 2849 2850**返回值:** 2851 2852| 类型 | 说明 | 2853| ------------------- | ---------------------------------------- | 2854| [By](#bydeprecated) | 返回指定目标控件的使能状态属性的By对象。 | 2855 2856**示例:** 2857 2858```js 2859let by = BY.enabled(true); // 使用静态构造器BY创建by对象,指定目标控件的使能状态属性。 2860``` 2861 2862### focused<sup>(deprecated)</sup> 2863 2864focused(b?: boolean): By 2865 2866指定目标控件的获焦状态属性,返回By对象自身。 2867 2868从API version 9开始不再维护,建议使用[focused<sup>9+</sup>](#focused9)。 2869 2870**系统能力**:SystemCapability.Test.UiTest 2871 2872**参数:** 2873 2874| 参数名 | 类型 | 必填 | 说明 | 2875| ------ | ------- | ---- | ----------------------------------------------------- | 2876| b | boolean | 否 | 控件获焦状态,true:获焦,false:未获焦。默认为true。 | 2877 2878**返回值:** 2879 2880| 类型 | 说明 | 2881| ------------------- | ---------------------------------------- | 2882| [By](#bydeprecated) | 返回指定目标控件的获焦状态属性的By对象。 | 2883 2884**示例:** 2885 2886```js 2887let by = BY.focused(true); // 使用静态构造器BY创建by对象,指定目标控件的获焦状态属性。 2888``` 2889 2890### selected<sup>(deprecated)</sup> 2891 2892selected(b?: boolean): By 2893 2894指定目标控件的被选中状态属性,返回By对象自身。 2895 2896从API version 9开始不再维护,建议使用[selected<sup>9+</sup>](#selected9)。 2897 2898**系统能力**:SystemCapability.Test.UiTest 2899 2900**参数:** 2901 2902| 参数名 | 类型 | 必填 | 说明 | 2903| ------ | ------- | ---- | ------------------------------------------------------------ | 2904| b | boolean | 否 | 指定控件被选中状态,true:被选中,false:未被选中。默认为true。 | 2905 2906**返回值:** 2907 2908| 类型 | 说明 | 2909| ------------------- | ------------------------------------------ | 2910| [By](#bydeprecated) | 返回指定目标控件的被选中状态属性的By对象。 | 2911 2912**示例:** 2913 2914```js 2915let by = BY.selected(true); // 使用静态构造器BY创建by对象,指定目标控件的被选中状态属性。 2916``` 2917 2918### isBefore<sup>(deprecated)</sup> 2919 2920isBefore(by: By): By 2921 2922指定目标控件位于给出的特征属性控件之前,返回By对象自身。 2923 2924从API version 9开始不再维护,建议使用[isBefore<sup>9+</sup>](#isbefore9)。 2925 2926**系统能力**:SystemCapability.Test.UiTest 2927 2928**参数:** 2929 2930| 参数名 | 类型 | 必填 | 说明 | 2931| ------ | ------------------- | ---- | ---------------- | 2932| by | [By](#bydeprecated) | 是 | 特征控件的属性。 | 2933 2934**返回值:** 2935 2936| 类型 | 说明 | 2937| ------------------- | ---------------------------------------------------- | 2938| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之前的By对象。 | 2939 2940**示例:** 2941 2942```js 2943let by = BY.isBefore(BY.text('123')); // 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之前。 2944``` 2945 2946### isAfter<sup>(deprecated)</sup> 2947 2948isAfter(by: By): By 2949 2950指定目标控件位于给出的特征属性控件之后,返回By对象自身。 2951 2952从API version 9开始不再维护,建议使用[isAfter<sup>9+</sup>](#isafter9)。 2953 2954**系统能力**:SystemCapability.Test.UiTest 2955 2956**参数:** 2957 2958| 参数名 | 类型 | 必填 | 说明 | 2959| ------ | ------------------- | ---- | ---------------- | 2960| by | [By](#bydeprecated) | 是 | 特征控件的属性。 | 2961 2962**返回值:** 2963 2964| 类型 | 说明 | 2965| ------------------- | ---------------------------------------------------- | 2966| [By](#bydeprecated) | 返回指定目标控件位于给出的特征属性控件之后的By对象。 | 2967 2968**示例:** 2969 2970```js 2971let by = BY.isAfter(BY.text('123')); // 使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之后。 2972``` 2973 2974## UiComponent<sup>(deprecated)</sup> 2975 2976UiTest中,UiComponent类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等API。 2977该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。 2978 2979从API version 9开始不再维护,建议使用[Component<sup>9+</sup>](#component9)。 2980 2981### click<sup>(deprecated)</sup> 2982 2983click(): Promise\<void> 2984 2985控件对象进行点击操作。 2986 2987从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。 2988 2989**系统能力**:SystemCapability.Test.UiTest 2990 2991**示例:** 2992 2993```js 2994async function demo() { 2995 let driver = UiDriver.create(); 2996 let button = await driver.findComponent(BY.type('button')); 2997 await button.click(); 2998} 2999``` 3000 3001### doubleClick<sup>(deprecated)</sup> 3002 3003doubleClick(): Promise\<void> 3004 3005控件对象进行双击操作。 3006 3007从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。 3008 3009**系统能力**:SystemCapability.Test.UiTest 3010 3011**示例:** 3012 3013```js 3014async function demo() { 3015 let driver = UiDriver.create(); 3016 let button = await driver.findComponent(BY.type('button')); 3017 await button.doubleClick(); 3018} 3019``` 3020 3021### longClick<sup>(deprecated)</sup> 3022 3023longClick(): Promise\<void> 3024 3025控件对象进行长按操作。 3026 3027从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。 3028 3029**系统能力**:SystemCapability.Test.UiTest 3030 3031**示例:** 3032 3033```js 3034async function demo() { 3035 let driver = UiDriver.create(); 3036 let button = await driver.findComponent(BY.type('button')); 3037 await button.longClick(); 3038} 3039``` 3040 3041### getId<sup>(deprecated)</sup> 3042 3043getId(): Promise\<number> 3044 3045获取控件对象的id值。 3046 3047从API version 9开始不再维护,被废弃。 3048 3049**系统能力**:SystemCapability.Test.UiTest 3050 3051**返回值:** 3052 3053| 类型 | 说明 | 3054| ---------------- | ------------------------------- | 3055| Promise\<number> | 以Promise形式返回的控件的id值。 | 3056 3057**示例:** 3058 3059```js 3060async function demo() { 3061 let driver = UiDriver.create(); 3062 let button = await driver.findComponent(BY.type('button')); 3063 let num = await button.getId(); 3064} 3065``` 3066 3067### getKey<sup>(deprecated)</sup> 3068 3069getKey(): Promise\<string> 3070 3071获取控件对象的key值。 3072 3073从API version 9开始不再维护,建议使用[getId<sup>9+</sup>](#getid9) 3074 3075**系统能力**:SystemCapability.Test.UiTest 3076 3077**返回值:** 3078 3079| 类型 | 说明 | 3080| ---------------- | ------------------------------ | 3081| Promise\<string> | 以Promise形式返回控件的key值。 | 3082 3083**示例:** 3084 3085```js 3086async function demo() { 3087 let driver = UiDriver.create(); 3088 let button = await driver.findComponent(BY.type('button')); 3089 let str_key = await button.getKey(); 3090} 3091``` 3092 3093### getText<sup>(deprecated)</sup> 3094 3095getText(): Promise\<string> 3096 3097获取控件对象的文本信息。 3098 3099从API version 9开始不再维护,建议使用[getText<sup>9+</sup>](#gettext9)。 3100 3101**系统能力**:SystemCapability.Test.UiTest 3102 3103**返回值:** 3104 3105| 类型 | 说明 | 3106| ---------------- | --------------------------------- | 3107| Promise\<string> | 以Promise形式返回控件的文本信息。 | 3108 3109**示例:** 3110 3111```js 3112async function demo() { 3113 let driver = UiDriver.create(); 3114 let button = await driver.findComponent(BY.type('button')); 3115 let text = await button.getText(); 3116} 3117``` 3118 3119### getType<sup>(deprecated)</sup> 3120 3121getType(): Promise\<string> 3122 3123获取控件对象的控件类型。 3124 3125从API version 9开始不再维护,建议使用[getType<sup>9+</sup>](#gettype9)。 3126 3127**系统能力**:SystemCapability.Test.UiTest 3128 3129**返回值:** 3130 3131| 类型 | 说明 | 3132| ---------------- | ----------------------------- | 3133| Promise\<string> | 以Promise形式返回控件的类型。 | 3134 3135**示例:** 3136 3137```js 3138async function demo() { 3139 let driver = UiDriver.create(); 3140 let button = await driver.findComponent(BY.type('button')); 3141 let type = await button.getType(); 3142} 3143``` 3144 3145### isClickable<sup>(deprecated)</sup> 3146 3147isClickable(): Promise\<boolean> 3148 3149获取控件对象可点击状态。 3150 3151从API version 9开始不再维护,建议使用[isClickable<sup>9+</sup>](#isclickable9)。 3152 3153**系统能力**:SystemCapability.Test.UiTest 3154 3155**返回值:** 3156 3157| 类型 | 说明 | 3158| ----------------- | ------------------------------------------------------------ | 3159| Promise\<boolean> | 以Promise形式返回控件对象可点击状态,true:可点击,false:不可点击。 | 3160 3161**示例:** 3162 3163```js 3164async function demo() { 3165 let driver = UiDriver.create(); 3166 let button = await driver.findComponent(BY.type('button')); 3167 if(await button.isClickable()) { 3168 console.info('This button can be Clicked'); 3169 } else { 3170 console.info('This button can not be Clicked'); 3171 } 3172} 3173``` 3174 3175### isScrollable<sup>(deprecated)</sup> 3176 3177isScrollable(): Promise\<boolean> 3178 3179获取控件对象可滑动状态。 3180 3181从API version 9开始不再维护,建议使用[isScrollable<sup>9+</sup>](#isscrollable9)。 3182 3183**系统能力**:SystemCapability.Test.UiTest 3184 3185**返回值:** 3186 3187| 类型 | 说明 | 3188| ----------------- | ------------------------------------------------------------ | 3189| Promise\<boolean> | 以Promise形式返回控件对象可滑动状态,true:可滑动,false:不可滑动。 | 3190 3191**示例:** 3192 3193```js 3194async function demo() { 3195 let driver = UiDriver.create(); 3196 let scrollBar = await driver.findComponent(BY.scrollable(true)); 3197 if(await scrollBar.isScrollable()) { 3198 console.info('This scrollBar can be operated'); 3199 } else { 3200 console.info('This scrollBar can not be operated'); 3201 } 3202} 3203``` 3204 3205 3206### isEnabled<sup>(deprecated)</sup> 3207 3208isEnabled(): Promise\<boolean> 3209 3210获取控件使能状态。 3211 3212从API version 9开始不再维护,建议使用[isEnabled<sup>9+</sup>](#isenabled9)。 3213 3214**系统能力**:SystemCapability.Test.UiTest 3215 3216**返回值:** 3217 3218| 类型 | 说明 | 3219| ----------------- | ---------------------------------------------------------- | 3220| Promise\<boolean> | 以Promise形式返回控件使能状态,true:使能,false:未使能。 | 3221 3222**示例:** 3223 3224```js 3225async function demo() { 3226 let driver = UiDriver.create(); 3227 let button = await driver.findComponent(BY.type('button')); 3228 if(await button.isEnabled()) { 3229 console.info('This button can be operated'); 3230 } else { 3231 console.info('This button can not be operated'); 3232 } 3233} 3234 3235``` 3236 3237### isFocused<sup>(deprecated)</sup> 3238 3239isFocused(): Promise\<boolean> 3240 3241判断控件对象是否获焦。 3242 3243从API version 9开始不再维护,建议使用[isFocused<sup>9+</sup>](#isfocused9)。 3244 3245**系统能力**:SystemCapability.Test.UiTest 3246 3247**返回值:** 3248 3249| 类型 | 说明 | 3250| ----------------- | ------------------------------------------------------------ | 3251| Promise\<boolean> | 以Promise形式返回控件对象是否获焦,true:获焦,false:未获焦。 | 3252 3253**示例:** 3254 3255```js 3256async function demo() { 3257 let driver = UiDriver.create(); 3258 let button = await driver.findComponent(BY.type('button')); 3259 if(await button.isFocused()) { 3260 console.info('This button is focused'); 3261 } else { 3262 console.info('This button is not focused'); 3263 } 3264} 3265``` 3266 3267### isSelected<sup>(deprecated)</sup> 3268 3269isSelected(): Promise\<boolean> 3270 3271获取控件对象被选中状态。 3272 3273从API version 9开始不再维护,建议使用[isSelected<sup>9+</sup>](#isselected9)。 3274 3275**系统能力**:SystemCapability.Test.UiTest 3276 3277**返回值:** 3278 3279| 类型 | 说明 | 3280| ----------------- | ----------------------------------------------------- | 3281| Promise\<boolean> | 控件对象被选中的状态,true:被选中,false:未被选中。 | 3282 3283**示例:** 3284 3285```js 3286async function demo() { 3287 let driver = UiDriver.create(); 3288 let button = await driver.findComponent(BY.type('button')); 3289 if(await button.isSelected()) { 3290 console.info('This button is selected'); 3291 } else { 3292 console.info('This button is not selected'); 3293 } 3294} 3295``` 3296 3297### inputText<sup>(deprecated)</sup> 3298 3299inputText(text: string): Promise\<void> 3300 3301向控件中输入文本(适用于文本框控件)。 3302 3303从API version 9开始不再维护,建议使用[inputText<sup>9+</sup>](#inputtext9)。 3304 3305**系统能力**:SystemCapability.Test.UiTest 3306 3307**参数:** 3308 3309| 参数名 | 类型 | 必填 | 说明 | 3310| ------ | ------ | ---- | ---------------- | 3311| text | string | 是 | 输入的文本信息。 | 3312 3313**示例:** 3314 3315```js 3316async function demo() { 3317 let driver = UiDriver.create(); 3318 let text = await driver.findComponent(BY.text('hello world')); 3319 await text.inputText('123'); 3320} 3321``` 3322 3323### scrollSearch<sup>(deprecated)</sup> 3324 3325scrollSearch(by: By): Promise\<UiComponent> 3326 3327在控件上滑动查找目标控件(适用于List等支持滑动的控件)。 3328 3329从API version 9开始不再维护,建议使用[scrollSearch<sup>9+</sup>](#scrollsearch9)。 3330 3331**系统能力**:SystemCapability.Test.UiTest 3332 3333**参数:** 3334 3335| 参数名 | 类型 | 必填 | 说明 | 3336| ------ | ------------------- | ---- | -------------------- | 3337| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 3338 3339**返回值:** 3340 3341| 类型 | 说明 | 3342| ----------------------------------------------- | ------------------------------------- | 3343| Promise\<[UiComponent](#uicomponentdeprecated)> | 以Promise形式返回找到的目标控件对象。 | 3344 3345**示例:** 3346 3347```js 3348async function demo() { 3349 let driver = UiDriver.create(); 3350 let scrollBar = await driver.findComponent(BY.type('Scroll')); 3351 let button = await scrollBar.scrollSearch(BY.text('next page')); 3352} 3353``` 3354 3355## UiDriver<sup>(deprecated)</sup> 3356 3357UiDriver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等API。 3358该类提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await调用。 3359 3360从API version 9开始不再维护,建议使用[Driver<sup>9+</sup>](#driver9)。 3361 3362### create<sup>(deprecated)</sup> 3363 3364static create(): UiDriver 3365 3366静态方法,构造一个UiDriver对象,并返回该对象。 3367 3368从API version 9开始不再维护,建议使用[create<sup>9+</sup>](#create9)。 3369 3370**系统能力**:SystemCapability.Test.UiTest 3371 3372**返回值:** 3373 3374| 类型 | 说明 | 3375| -------- | ------------------------ | 3376| UiDriver | 返回构造的UiDriver对象。 | 3377 3378**示例:** 3379 3380```js 3381async function demo() { 3382 let driver = UiDriver.create(); 3383} 3384``` 3385 3386### delayMs<sup>(deprecated)</sup> 3387 3388delayMs(duration: number): Promise\<void> 3389 3390UiDriver对象在给定的时间内延时。 3391 3392从API version 9开始不再维护,建议使用[delayMs<sup>9+</sup>](#delayms9)。 3393 3394**系统能力**:SystemCapability.Test.UiTest 3395 3396**参数:** 3397 3398| 参数名 | 类型 | 必填 | 说明 | 3399| -------- | ------ | ---- | ------------ | 3400| duration | number | 是 | 给定的时间。 | 3401 3402**示例:** 3403 3404```js 3405async function demo() { 3406 let driver = UiDriver.create(); 3407 await driver.delayMs(1000); 3408} 3409``` 3410 3411### findComponent<sup>(deprecated)</sup> 3412 3413findComponent(by: By): Promise\<UiComponent> 3414 3415在UiDriver对象中,根据给出的目标控件属性要求查找目标控件。 3416 3417从API version 9开始不再维护,建议使用[findComponent<sup>9+</sup>](#findcomponent9)。 3418 3419**系统能力**:SystemCapability.Test.UiTest 3420 3421**参数:** 3422 3423| 参数名 | 类型 | 必填 | 说明 | 3424| ------ | ------------------- | ---- | -------------------- | 3425| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 3426 3427**返回值:** 3428 3429| 类型 | 说明 | 3430| ----------------------------------------------- | --------------------------------- | 3431| Promise\<[UiComponent](#uicomponentdeprecated)> | 以Promise形式返回找到的控件对象。 | 3432 3433**示例:** 3434 3435```js 3436async function demo() { 3437 let driver = UiDriver.create(); 3438 let button = await driver.findComponent(BY.text('next page')); 3439} 3440``` 3441 3442### findComponents<sup>(deprecated)</sup> 3443 3444findComponents(by: By): Promise\<Array\<UiComponent>> 3445 3446在UiDriver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。 3447 3448从API version 9开始不再维护,建议使用[findComponents<sup>9+</sup>](#findcomponents9)。 3449 3450**系统能力**:SystemCapability.Test.UiTest 3451 3452**参数:** 3453 3454| 参数名 | 类型 | 必填 | 说明 | 3455| ------ | ------------------- | ---- | -------------------- | 3456| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 3457 3458**返回值:** 3459 3460| 类型 | 说明 | 3461| ------------------------------------------------------- | --------------------------------------- | 3462| Promise\<Array\<[UiComponent](#uicomponentdeprecated)>> | 以Promise形式返回找到的控件对象的列表。 | 3463 3464**示例:** 3465 3466```js 3467async function demo() { 3468 let driver = UiDriver.create(); 3469 let buttonList = await driver.findComponents(BY.text('next page')); 3470} 3471``` 3472 3473### assertComponentExist<sup>(deprecated)</sup> 3474 3475assertComponentExist(by: By): Promise\<void> 3476 3477断言API,用于断言当前界面存在满足给出的目标控件属性的控件; 如果控件不存在,该API将抛出JS异常,使当前测试用例失败。 3478 3479从API version 9开始不再维护,建议使用[assertComponentExist<sup>9+</sup>](#assertcomponentexist9)。 3480 3481**系统能力**:SystemCapability.Test.UiTest 3482 3483**参数:** 3484 3485| 参数名 | 类型 | 必填 | 说明 | 3486| ------ | ------------------- | ---- | -------------------- | 3487| by | [By](#bydeprecated) | 是 | 目标控件的属性要求。 | 3488 3489**示例:** 3490 3491```js 3492async function demo() { 3493 let driver = UiDriver.create(); 3494 await driver.assertComponentExist(BY.text('next page')); 3495} 3496``` 3497 3498### pressBack<sup>(deprecated)</sup> 3499 3500pressBack(): Promise\<void> 3501 3502UiDriver对象进行点击BACK键的操作。 3503 3504从API version 9开始不再维护,建议使用[pressBack<sup>9+</sup>](#pressback9)。 3505 3506**系统能力**:SystemCapability.Test.UiTest 3507 3508**示例:** 3509 3510```js 3511async function demo() { 3512 let driver = UiDriver.create(); 3513 await driver.pressBack(); 3514} 3515``` 3516 3517### triggerKey<sup>(deprecated)</sup> 3518 3519triggerKey(keyCode: number): Promise\<void> 3520 3521UiDriver对象采取如下操作:通过key值找到对应键并点击。 3522 3523从API version 9开始不再维护,建议使用[triggerKey<sup>9+</sup>](#triggerkey9)。 3524 3525**系统能力**:SystemCapability.Test.UiTest 3526 3527**参数:** 3528 3529| 参数名 | 类型 | 必填 | 说明 | 3530| ------- | ------ | ---- | ------------- | 3531| keyCode | number | 是 | 指定的key值。 | 3532 3533**示例:** 3534 3535```js 3536async function demo() { 3537 let driver = UiDriver.create(); 3538 await driver.triggerKey(123); 3539} 3540``` 3541 3542 3543### click<sup>(deprecated)</sup> 3544 3545click(x: number, y: number): Promise\<void> 3546 3547UiDriver对象采取如下操作:在目标坐标点单击。 3548 3549从API version 9开始不再维护,建议使用[click<sup>9+</sup>](#click9)。 3550 3551**系统能力**:SystemCapability.Test.UiTest 3552 3553**参数:** 3554 3555| 参数名 | 类型 | 必填 | 说明 | 3556| ------ | ------ | ---- | -------------------------------------- | 3557| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 3558| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 3559 3560**示例:** 3561 3562```js 3563async function demo() { 3564 let driver = UiDriver.create(); 3565 await driver.click(100,100); 3566} 3567``` 3568 3569### doubleClick<sup>(deprecated)</sup> 3570 3571doubleClick(x: number, y: number): Promise\<void> 3572 3573UiDriver对象采取如下操作:在目标坐标点双击。 3574 3575从API version 9开始不再维护,建议使用[doubleClick<sup>9+</sup>](#doubleclick9)。 3576 3577**系统能力**:SystemCapability.Test.UiTest 3578 3579**参数:** 3580 3581| 参数名 | 类型 | 必填 | 说明 | 3582| ------ | ------ | ---- | -------------------------------------- | 3583| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 3584| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 3585 3586**示例:** 3587 3588```js 3589async function demo() { 3590 let driver = UiDriver.create(); 3591 await driver.doubleClick(100,100); 3592} 3593``` 3594 3595### longClick<sup>(deprecated)</sup> 3596 3597longClick(x: number, y: number): Promise\<void> 3598 3599UiDriver对象采取如下操作:在目标坐标点长按下鼠标左键。 3600 3601从API version 9开始不再维护,建议使用[longClick<sup>9+</sup>](#longclick9)。 3602 3603**系统能力**:SystemCapability.Test.UiTest 3604 3605**参数:** 3606 3607| 参数名 | 类型 | 必填 | 说明 | 3608| ------ | ------ | ---- | -------------------------------------- | 3609| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 3610| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 3611 3612**示例:** 3613 3614```js 3615async function demo() { 3616 let driver = UiDriver.create(); 3617 await driver.longClick(100,100); 3618} 3619``` 3620 3621### swipe<sup>(deprecated)</sup> 3622 3623swipe(startx: number, starty: number, endx: number, endy: number): Promise\<void> 3624 3625UiDriver对象采取如下操作:从给出的起始坐标点滑向给出的目的坐标点。 3626 3627从API version 9开始不再维护,建议使用[swipe<sup>9+</sup>](#swipe9)。 3628 3629**系统能力**:SystemCapability.Test.UiTest 3630 3631**参数:** 3632 3633| 参数名 | 类型 | 必填 | 说明 | 3634| ------ | ------ | ---- | -------------------------------------- | 3635| startx | number | 是 | 以number的形式传入起始点的横坐标信息。 | 3636| starty | number | 是 | 以number的形式传入起始点的纵坐标信息。 | 3637| endx | number | 是 | 以number的形式传入目的点的横坐标信息。 | 3638| endy | number | 是 | 以number的形式传入目的点的纵坐标信息。 | 3639 3640**示例:** 3641 3642```js 3643async function demo() { 3644 let driver = UiDriver.create(); 3645 await driver.swipe(100,100,200,200); 3646} 3647``` 3648 3649### screenCap<sup>(deprecated)</sup> 3650 3651screenCap(savePath: string): Promise\<boolean> 3652 3653UiDriver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。 3654 3655从API version 9开始不再维护,建议使用[screenCap<sup>9+</sup>](#screencap9)。 3656 3657**系统能力**:SystemCapability.Test.UiTest 3658 3659**参数:** 3660 3661| 参数名 | 类型 | 必填 | 说明 | 3662| -------- | ------ | ---- | -------------- | 3663| savePath | string | 是 | 文件保存路径。 | 3664 3665**返回值:** 3666 3667| 类型 | 说明 | 3668| ----------------- | -------------------------------------- | 3669| Promise\<boolean> | 截图操作是否成功完成。成功完成为true。 | 3670 3671**示例:** 3672 3673```js 3674async function demo() { 3675 let driver = UiDriver.create(); 3676 await driver.screenCap('/local/tmp/1.png'); 3677} 3678``` 3679