1# UiTest 2 3UiTest提供模拟UI操作的能力,供开发者在测试场景使用,主要支持如点击、双击、长按、滑动等UI操作能力。 4 5该模块提供以下功能: 6 7- [By](#by):提供控件特征描述能力,用于控件筛选匹配查找。 8- [UiComponent](#uicomponent):代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。 9- [UiDriver](#uidriver):入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能能力。 10 11>**说明:** 12> 13>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15 16## 导入模块 17 18``` 19import {UiDriver,BY,MatchPattern} from '@ohos.uitest' 20``` 21 22## MatchPattern 23 24控件属性支持的匹配模式。 25 26**系统能力**:以下各项对应的系统能力均为SystemCapability.Test.UiTest 27 28| 名称 | 值 | 说明 | 29| ----------- | ---- | -------------- | 30| EQUALS | 0 | 等于给定值。 | 31| CONTAINS | 1 | 包含给定值。 | 32| STARTS_WITH | 2 | 从给定值开始。 | 33| ENDS_WITH | 3 | 以给定值结束。 | 34 35## By 36 37UiTest框架通过By类提供了丰富的控件特征描述API,用以进行控件筛选来匹配/查找出目标控件。<br> 38By提供的API能力具有以下几个特点:<br>1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。<br>2、控件属性支持多种匹配模式。<br>3、支持控件绝对定位,相对定位,可通过[By.isBefore](#byisbefore)和[By.isAfter](#byisafter)等API限定邻近控件特征进行辅助定位。<br>By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。 39 40```js 41BY.text('123').type('button') 42``` 43 44### By.text 45 46text(txt: string, pattern?: MatchPattern): By 47 48指定目标控件文本属性,支持多种匹配模式,返回By对象自身。 49 50**系统能力**:SystemCapability.Test.UiTest 51 52**参数:** 53 54| 参数名 | 类型 | 必填 | 说明 | 55| ------- | ------------ | ---- | ------------------------------------------------- | 56| txt | string | 是 | 指定控件文本,用于匹配目标控件文本。 | 57| pattern | MatchPattern | 否 | 指定的文本匹配模式,默认为[EQUALS](#matchpattern) | 58 59**返回值:** 60 61| 类型 | 说明 | 62| ---- | -------------- | 63| By | 返回By对象自身 | 64 65**示例:** 66 67```js 68let by = BY.text('123') //使用静态构造器BY创建by对象,指定目标控件的text属性。 69``` 70 71 72### By.key 73 74key(key: string): By 75 76指定目标控件key值属性,返回By对象自身。 77 78**系统能力**:SystemCapability.Test.UiTest 79 80**参数:** 81 82| 参数名 | 类型 | 必填 | 说明 | 83| ------ | ------ | ---- | ----------------- | 84| key | string | 是 | 指定控件的Key值。 | 85 86**返回值:** 87 88| 类型 | 说明 | 89| ---- | ---------------- | 90| By | 返回By对象自身。 | 91 92**示例:** 93 94```js 95let by = BY.key('123') //使用静态构造器BY创建by对象,指定目标控件的key值属性。 96``` 97 98 99### By.id 100 101id(id: number): By 102 103指定目标控件id属性,返回By对象自身。 104 105**系统能力**:SystemCapability.Test.UiTest 106 107**参数:** 108 109| 参数名 | 类型 | 必填 | 说明 | 110| ------ | ------ | ---- | ---------------- | 111| id | number | 是 | 指定控件的id值。 | 112 113**返回值:** 114 115| 类型 | 说明 | 116| ---- | ---------------- | 117| By | 返回By对象自身。 | 118 119**示例:** 120 121```js 122let by = BY.id(123) //使用静态构造器BY创建by对象,指定目标控件的id属性。 123``` 124 125 126### By.type 127 128type(tp: string): By 129 130指定目标控件的控件类型属性,返回By对象自身。 131 132**系统能力**:SystemCapability.Test.UiTest 133 134**参数:** 135 136| 参数名 | 类型 | 必填 | 说明 | 137| ------ | ------ | ---- | -------------- | 138| tp | string | 是 | 指定控件类型。 | 139 140**返回值:** 141 142| 类型 | 说明 | 143| ---- | ---------------- | 144| By | 返回By对象自身。 | 145 146**示例:** 147 148```js 149let by = BY.type('button') //使用静态构造器BY创建by对象,指定目标控件的控件类型属性。 150``` 151 152 153### By.clickable 154 155clickable(b?: bool): By 156 157指定目标控件的可点击状态属性,返回By对象自身。 158 159**系统能力**:SystemCapability.Test.UiTest 160 161**参数:** 162 163| 参数名 | 类型 | 必填 | 说明 | 164| ------ | ---- | ---- | -------------------------------- | 165| b | bool | 否 | 指定控件可点击状态,默认为true。 | 166 167**返回值:** 168 169| 类型 | 说明 | 170| ---- | ---------------- | 171| By | 返回By对象自身。 | 172 173**示例:** 174 175```js 176let by = BY.clickable(true) //使用静态构造器BY创建by对象,指定目标控件的可点击状态属性。 177``` 178 179 180### By.scrollable 181 182scrollable(b?: bool): By 183 184指定目标控件的可滑动状态属性,返回By对象自身。 185 186**系统能力**:SystemCapability.Test.UiTest 187 188**参数:** 189 190| 参数名 | 类型 | 必填 | 说明 | 191| ------ | ---- | ---- | ---------------------------- | 192| b | bool | 否 | 控件可滑动状态,默认为true。 | 193 194**返回值:** 195 196| 类型 | 说明 | 197| ---- | ---------------- | 198| By | 返回By对象自身。 | 199 200**示例:** 201 202```js 203let by = BY.scrollable(true) //使用静态构造器BY创建by对象,指定目标控件的可滑动状态属性。 204``` 205 206### By.enabled 207 208enabled(b?: bool): By 209 210指定目标控件的使能状态属性,返回By对象自身。 211 212**系统能力**:SystemCapability.Test.UiTest 213 214**参数:** 215 216| 参数名 | 类型 | 必填 | 说明 | 217| ------ | ---- | ---- | ------------------------------ | 218| b | bool | 否 | 指定控件使能状态,默认为true。 | 219 220**返回值:** 221 222| 类型 | 说明 | 223| ---- | ---------------- | 224| By | 返回By对象自身。 | 225 226**示例:** 227 228```js 229let by = BY.enabled(true) //使用静态构造器BY创建by对象,指定目标控件的使能状态属性。 230``` 231 232### By.focused 233 234focused(b?: bool): By 235 236指定目标控件的获焦状态属性,返回By对象自身。 237 238**系统能力**:SystemCapability.Test.UiTest 239 240**参数:** 241 242| 参数名 | 类型 | 必填 | 说明 | 243| ------ | ---- | ---- | -------------------------- | 244| b | bool | 否 | 控件获焦状态,默认为true。 | 245 246**返回值:** 247 248| 类型 | 说明 | 249| ---- | ---------------- | 250| By | 返回By对象自身。 | 251 252**示例:** 253 254```js 255let by = BY.focused(true) //使用静态构造器BY创建by对象,指定目标控件的获焦状态属性。 256``` 257 258### By.selected 259 260selected(b?: bool): By 261 262指定目标控件的被选中状态属性,返回By对象自身。 263 264**系统能力**:SystemCapability.Test.UiTest 265 266**参数:** 267 268| 参数名 | 类型 | 必填 | 说明 | 269| ------ | ---- | ---- | -------------------------------- | 270| b | bool | 否 | 指定控件被选中状态,默认为true。 | 271 272**返回值:** 273 274| 类型 | 说明 | 275| ---- | ---------------- | 276| By | 返回By对象自身。 | 277 278**示例:** 279 280```js 281let by = BY.selected(true) //使用静态构造器BY创建by对象,指定目标控件的被选中状态属性。 282``` 283 284### By.isBefore 285 286isBefore(by: By): By 287 288指定目标控件位于给出的特征属性控件之前,返回By对象自身。 289 290**系统能力**:SystemCapability.Test.UiTest 291 292**参数:** 293 294| 参数名 | 类型 | 必填 | 说明 | 295| ------ | ---- | ---- | ---------------- | 296| by | By | 是 | 特征控件的属性。 | 297 298**返回值:** 299 300| 类型 | 说明 | 301| ---- | ---------------- | 302| By | 返回By对象自身。 | 303 304**示例:** 305 306```js 307let by = BY.isBefore(BY.text('123')) //使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之前。 308``` 309 310### By.isAfter 311 312isAfter(by: By): By 313 314指定目标控件位于给出的特征属性控件之后,返回By对象自身。 315 316**系统能力**:SystemCapability.Test.UiTest 317 318**参数:** 319 320| 参数名 | 类型 | 必填 | 说明 | 321| ------ | ---- | ---- | ---------------- | 322| by | By | 是 | 特征控件的属性。 | 323 324**返回值:** 325 326| 类型 | 说明 | 327| ---- | ---------------- | 328| By | 返回By对象自身。 | 329 330**示例:** 331 332```js 333let by = BY.isAfter(BY.text('123')) //使用静态构造器BY创建by对象,指定目标控件位于给出的特征属性控件之后。 334``` 335 336## UiComponent 337 338UiTest中,UiComponent类代表了UI界面上的一个控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。 339该类提供的所有方法都使用Promise方式作为异步方法,需使用await调用。 340 341### UiComponent.click 342 343click(): Promise\<void> 344 345控件对象进行点击操作。 346 347**系统能力**:SystemCapability.Test.UiTest 348 349**示例:** 350 351```js 352async function demo() { 353 let driver = UiDriver.create() 354 let button = await driver.findComponent(BY.type('button')) 355 await button.click() 356} 357``` 358 359### UiComponent.doubleClick 360 361doubleClick(): Promise\<void> 362 363控件对象进行双击操作。 364 365**系统能力**:SystemCapability.Test.UiTest 366 367**示例:** 368 369```js 370async function demo() { 371 let driver = UiDriver.create() 372 let button = await driver.findComponent(BY.type('button')) 373 await button.doubleClick() 374} 375``` 376 377### UiComponent.longClick 378 379longClick(): Promise\<void> 380 381控件对象进行长按操作。 382 383**系统能力**:SystemCapability.Test.UiTest 384 385**示例:** 386 387```js 388async function demo() { 389 let driver = UiDriver.create() 390 let button = await driver.findComponent(BY.type('button')) 391 await button.longClick() 392} 393``` 394 395### UiComponent.getId 396 397getId(): Promise\<number> 398 399获取控件对象的id值。 400 401**系统能力**:SystemCapability.Test.UiTest 402 403**返回值:** 404 405| 类型 | 说明 | 406| ---------------- | ------------------------------- | 407| Promise\<number> | 以Promise形式返回的控件的id值。 | 408 409**示例:** 410 411```js 412async function demo() { 413 let driver = UiDriver.create() 414 let button = await driver.findComponent(BY.type('button')) 415 let num = await button.getId() 416} 417``` 418 419### UiComponent.getKey 420 421getKey(): Promise\<string> 422 423获取控件对象的key值。 424 425**系统能力**:SystemCapability.Test.UiTest 426 427**返回值:** 428 429| 类型 | 说明 | 430| ---------------- | ------------------------------ | 431| Promise\<string> | 以Promise形式返回控件的key值。 | 432 433**示例:** 434 435```js 436async function demo() { 437 let driver = UiDriver.create() 438 let button = await driver.findComponent(BY.type('button')) 439 let str_key = await button.getKey() 440} 441``` 442 443### UiComponent.getText 444 445getText(): Promise\<string> 446 447获取控件对象的文本信息。 448 449**系统能力**:SystemCapability.Test.UiTest 450 451**返回值:** 452 453| 类型 | 说明 | 454| ---------------- | --------------------------------- | 455| Promise\<string> | 以Promise形式返回控件的文本信息。 | 456 457**示例:** 458 459```js 460async function demo() { 461 let driver = UiDriver.create() 462 let button = await driver.findComponent(BY.type('button')) 463 let text = await button.getText() 464} 465``` 466 467### UiComponent.getType 468 469getType(): Promise\<string> 470 471获取控件对象的控件类型。 472 473**系统能力**:SystemCapability.Test.UiTest 474 475**返回值:** 476 477| 类型 | 说明 | 478| ---------------- | ----------------------------- | 479| Promise\<string> | 以Promise形式返回控件的类型。 | 480 481**示例:** 482 483```js 484async function demo() { 485 let driver = UiDriver.create() 486 let button = await driver.findComponent(BY.type('button')) 487 let type = await button.getType() 488} 489``` 490 491### UiComponent.isClickable 492 493isClickable(): Promise\<bool> 494 495获取控件对象可点击状态。 496 497**系统能力**:SystemCapability.Test.UiTest 498 499**返回值:** 500 501| 类型 | 说明 | 502| -------------- | ------------------------------------- | 503| Promise\<bool> | 以Promise形式返回控件对象可点击状态。 | 504 505**示例:** 506 507```js 508async function demo() { 509 let driver = UiDriver.create() 510 let button = await driver.findComponent(BY.type('button')) 511 if(await button.isClickable()) { 512 console.info('This button can be Clicked') 513 } 514 else{ 515 console.info('This button can not be Clicked') 516 } 517} 518``` 519 520### UiComponent.isScrollable 521 522isScrollable(): Promise\<bool> 523 524获取控件对象可滑动状态。 525 526**系统能力**:SystemCapability.Test.UiTest 527 528**返回值:** 529 530| 类型 | 说明 | 531| -------------- | ------------------------------------- | 532| Promise\<bool> | 以Promise形式返回控件对象可滑动状态。 | 533 534**示例:** 535 536```js 537async function demo() { 538 let driver = UiDriver.create() 539 let scrollBar = await driver.findComponent(BY.scrollable(true)) 540 if(await scrollBar.isScrollable()) { 541 console.info('This scrollBar can be operated') 542 } 543 else{ 544 console.info('This scrollBar can not be operated') 545 } 546} 547``` 548 549 550### UiComponent.isEnabled 551 552isEnabled(): Promise\<bool> 553 554获取控件使能状态。 555 556**系统能力**:SystemCapability.Test.UiTest 557 558**返回值:** 559 560| 类型 | 说明 | 561| -------------- | ------------------------------- | 562| Promise\<bool> | 以Promise形式返回控件使能状态。 | 563 564**示例:** 565 566```js 567async function demo() { 568 let driver = UiDriver.create() 569 let button = await driver.findComponent(BY.type('button')) 570 if(await button.isEnabled()) { 571 console.info('This button can be operated') 572 } 573 else{ 574 console.info('This button can not be operated') 575 } 576} 577 578``` 579 580### UiComponent.isFocused 581 582isFocused(): Promise\<bool> 583 584判断控件对象是否获焦。 585 586**系统能力**:SystemCapability.Test.UiTest 587 588**返回值:** 589 590| 类型 | 说明 | 591| -------------- | ----------------------------------- | 592| Promise\<bool> | 以Promise形式返回控件对象是否获焦。 | 593 594**示例:** 595 596```js 597async function demo() { 598 let driver = UiDriver.create() 599 let button = await driver.findComponent(BY.type('button')) 600 if(await button.isFocused()) { 601 console.info('This button is focused') 602 } 603 else{ 604 console.info('This button is not focused') 605 } 606} 607``` 608 609### UiComponent.isSelected 610 611isSelected(): Promise\<bool> 612 613获取控件对象被选中状态。 614 615**系统能力**:SystemCapability.Test.UiTest 616 617**返回值:** 618 619| 类型 | 说明 | 620| -------------- | -------------------- | 621| Promise\<bool> | 控件对象被选中的状态 | 622 623**示例:** 624 625```js 626async function demo() { 627 let driver = UiDriver.create() 628 let button = await driver.findComponent(BY.type('button')) 629 if(await button.isSelected()) { 630 console.info('This button is selected') 631 } 632 else{ 633 console.info('This button is not selected') 634 } 635} 636``` 637 638### UiComponent.inputText 639 640inputText(text: string): Promise\<void> 641 642向控件中输入文本(适用于文本框控件)。 643 644**系统能力**:SystemCapability.Test.UiTest 645 646**参数:** 647 648| 参数名 | 类型 | 必填 | 说明 | 649| ------ | ------ | ---- | ---------------- | 650| text | string | 是 | 输入的文本信息。 | 651 652**示例:** 653 654```js 655async function demo() { 656 let driver = UiDriver.create() 657 let text = await driver.findComponent(BY.text('hello world')) 658 await text.inputText('123') 659} 660``` 661 662### UiComponent.scrollSearch 663 664scrollSearch(by:By): Promise\<UiComponent> 665 666在控件上滑动查找目标控件(适用于List等支持滑动的控件)。 667 668**系统能力**:SystemCapability.Test.UiTest 669 670**参数:** 671 672| 参数名 | 类型 | 必填 | 说明 | 673| ------ | ---- | ---- | -------------------- | 674| by | By | 是 | 目标控件的属性要求。 | 675 676**返回值:** 677 678| 类型 | 说明 | 679| --------------------- | ------------------------------------- | 680| Promise\<UiComponent> | 以Promise形式返回找到的目标控件对象。 | 681 682**示例:** 683 684```js 685async function demo() { 686 let driver = UiDriver.create() 687 let scrollBar = await driver.findComponent(BY.type('Scroll')) 688 let button = await scrollBar.scrollSearch(BY.text('next page')) 689} 690``` 691 692## UiDriver 693 694UiDriver类为uitest测试框架的总入口,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能力。 695该类提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作为异步方法,需使用await调用。 696 697### UiDriver.create 698 699static create(): UiDriver 700 701静态方法,构造一个UiDriver对象,并返回该对象。 702 703**系统能力**:SystemCapability.Test.UiTest 704 705**返回值:** 706 707| 类型 | 说明 | 708| ------- | ------------------------ | 709| UiDrive | 返回构造的UiDriver对象。 | 710 711**示例:** 712 713```js 714async function demo() { 715 let driver = UiDriver.create() 716} 717``` 718 719### UiDriver.delayMs 720 721delayMs(duration: number): Promise\<void> 722 723UiDriver对象在给定的时间内延时。 724 725**系统能力**:SystemCapability.Test.UiTest 726 727**参数:** 728 729| 参数名 | 类型 | 必填 | 说明 | 730| -------- | ------ | ---- | ------------ | 731| duration | number | 是 | 给定的时间。 | 732 733**示例:** 734 735```js 736async function demo() { 737 let driver = UiDriver.create() 738 await driver.delayMs(1000) 739} 740``` 741 742### UiDriver.findComponent 743 744findComponent(by: By): Promise\<UiComponent> 745 746在UiDriver对象中,根据给出的目标控件属性要求查找目标控件。 747 748**系统能力**:SystemCapability.Test.UiTest 749 750**参数:** 751 752| 参数名 | 类型 | 必填 | 说明 | 753| ------ | ---- | ---- | -------------------- | 754| by | By | 是 | 目标控件的属性要求。 | 755 756**返回值:** 757 758| 类型 | 说明 | 759| --------------------- | --------------------------------- | 760| Promise\<UiComponent> | 以Promise形式返回找到的控件对象。 | 761 762**示例:** 763 764```js 765async function demo() { 766 let driver = UiDriver.create() 767 let button = await driver.findComponent(BY.text('next page')) 768} 769``` 770 771### UiDriver.findComponents 772 773findComponents(by: By): Promise\<Array\<UiComponent>> 774 775在UiDriver对象中,根据给出的目标控件属性要求查找出所有匹配控件,以列表保存。 776 777**系统能力**:SystemCapability.Test.UiTest 778 779**参数:** 780 781| 参数名 | 类型 | 必填 | 说明 | 782| ------ | ---- | ---- | -------------------- | 783| by | By | 是 | 目标控件的属性要求。 | 784 785**返回值:** 786 787| 类型 | 说明 | 788| ----------------------------- | --------------------------------------- | 789| Promise\<Array\<UiComponent>> | 以Promise形式返回找到的控件对象的列表。 | 790 791**示例:** 792 793```js 794async function demo() { 795 let driver = UiDriver.create() 796 let buttonList = await driver.findComponents(BY.text('next page')) 797} 798``` 799 800### UiDriver.assertComponentExist 801 802assertComponentExist(by: By): Promise\<void> 803 804断言API,用于断言当前界面存在满足给出控件属性的控件; 如果控件不存在,将抛出JS异常,使当前测试用例失败。 805 806**系统能力**:SystemCapability.Test.UiTest 807 808**参数:** 809 810| 参数名 | 类型 | 必填 | 说明 | 811| ------ | ---- | ---- | -------------------- | 812| by | By | 是 | 目标控件的属性要求。 | 813 814**示例:** 815 816```js 817async function demo() { 818 let driver = UiDriver.create() 819 await driver.assertComponentExist(BY.text('next page')) 820} 821``` 822 823### UiDriver.pressBack 824 825pressBack(): Promise\<void> 826 827UiDriver对象进行点击BACK键的操作。 828 829**系统能力**:SystemCapability.Test.UiTest 830 831**示例:** 832 833```js 834async function demo() { 835 let driver = UiDriver.create() 836 await driver.pressBack() 837} 838``` 839 840### UiDriver.triggerKey 841 842triggerKey(keyCode: number): Promise\<void> 843 844UiDriver对象采取如下操作:通过key值找到对应键并点击。 845 846**系统能力**:SystemCapability.Test.UiTest 847 848**参数:** 849 850| 参数名 | 类型 | 必填 | 说明 | 851| ------- | ------ | ---- | ------------- | 852| keyCode | number | 是 | 指定的key值。 | 853 854**示例:** 855 856```js 857async function demo() { 858 let driver = UiDriver.create() 859 await driver.triggerKey(123) 860} 861``` 862 863### UiDriver.click 864 865click(x: number, y: number): Promise\<void> 866 867UiDriver对象采取如下操作:在目标坐标点单击。 868 869**系统能力**:SystemCapability.Test.UiTest 870 871**参数:** 872 873| 参数名 | 类型 | 必填 | 说明 | 874| ------ | ------ | ---- | -------------------------------------- | 875| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 876| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 877 878**示例:** 879 880```js 881async function demo() { 882 let driver = UiDriver.create() 883 await driver.click(100,100) 884} 885``` 886 887### UiDriver.doubleClick 888 889doubleClick(x: number, y: number): Promise\<void> 890 891UiDriver对象采取如下操作:在目标坐标点双击。 892 893**系统能力**:SystemCapability.Test.UiTest 894 895**参数:** 896 897| 参数名 | 类型 | 必填 | 说明 | 898| ------ | ------ | ---- | -------------------------------------- | 899| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 900| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 901 902**示例:** 903 904```js 905async function demo() { 906 let driver = UiDriver.create() 907 await driver.doubleClick(100,100) 908} 909``` 910 911### UiDriver.longClick 912 913longClick(x: number, y: number): Promise\<void> 914 915UiDriver对象采取如下操作:在目标坐标点长按下鼠标左键。 916 917**系统能力**:SystemCapability.Test.UiTest 918 919**参数:** 920 921| 参数名 | 类型 | 必填 | 说明 | 922| ------ | ------ | ---- | -------------------------------------- | 923| x | number | 是 | 以number的形式传入目标点的横坐标信息。 | 924| y | number | 是 | 以number的形式传入目标点的纵坐标信息。 | 925 926**示例:** 927 928```js 929async function demo() { 930 let driver = UiDriver.create() 931 await driver.longClick(100,100) 932} 933``` 934 935### UiDriver.swipe 936 937swipe(startx: number, starty: number, endx: number, endy: number, speed: number): Promise\<void> 938 939UiDriver对象采取如下操作:从起始坐标点滑向目的坐标点。 940 941**系统能力**:SystemCapability.Test.UiTest 942 943**参数:** 944 945| 参数名 | 类型 | 必填 | 说明 | 946| ------ | ------ | ---- | ------------------------------------------------------------ | 947| startx | number | 是 | 以number的形式传入起始点的横坐标信息。 | 948| starty | number | 是 | 以number的形式传入起始点的纵坐标信息。 | 949| endx | number | 是 | 以number的形式传入目的点的横坐标信息。 | 950| endy | number | 是 | 以number的形式传入目的点的纵坐标信息。 | 951| speed | number | 否 | 拖拽的速度。范围200-3000,超出范围设为默认值600。单位:像素点/秒。单位:像素点/秒。 | 952 953**示例:** 954 955```js 956async function demo() { 957 let driver = UiDriver.create() 958 await driver.swipe(100,100,200,200) 959} 960``` 961 962### UiDriver.screenCap 963 964screenCap(savePath: string): Promise\<bool> 965 966UiDriver对象采取如下操作:捕获当前屏幕,并保存为PNG格式的图片至给出的保存路径中。 967 968**系统能力**:SystemCapability.Test.UiTest 969 970**参数:** 971 972| 参数名 | 类型 | 必填 | 说明 | 973| -------- | ------ | ---- | -------------- | 974| savePath | string | 是 | 文件保存路径。 | 975 976**返回值:** 977 978| 类型 | 说明 | 979| -------------- | -------------------------------------- | 980| Promise\<bool> | 截图操作是否成功完成。成功完成为true。 | 981 982**示例:** 983 984```js 985async function demo() { 986 let driver = UiDriver.create() 987 await driver.screenCap('/local/tmp/') 988} 989``` 990