• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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