当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1.4K Star 7.4K Fork 8.2K

OpenHarmony/docs
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
docker
en
zh-cn
application-dev
IDL
ability
connectivity
database
device-usage-statistics
device
dfx
internationalization
media
napi
notification
public_sys-resources
quick-start
reference
apis
figures
public_sys-resources
Readme-CN.md
js-apis-Bundle-InnerBundleManager.md
js-apis-Bundle-distributedBundle.md
js-apis-Bundle.md
js-apis-Context.md
js-apis-DataUriUtils.md
js-apis-WorkSchedulerExtensionAbility.md
js-apis-ability-context.md
js-apis-ability-errorCode.md
js-apis-ability-wantConstant.md
js-apis-abilityAccessCtrl.md
js-apis-abilityDelegatorRegistry.md
js-apis-abilityrunninginfo.md
js-apis-abilitystagecontext.md
js-apis-accessibility.md
js-apis-animator.md
js-apis-appAccount.md
js-apis-application-MissionSnapshot.md
js-apis-application-StartOptions.md
js-apis-application-Want.md
js-apis-application-WindowExtensionAbility.md
js-apis-application-ability.md
js-apis-application-abilityConstant.md
js-apis-application-abilityDelegator.md
js-apis-application-abilityDelegatorArgs.md
js-apis-application-abilityLifecycleCallback.md
js-apis-application-abilityManager.md
js-apis-application-abilityMonitor.md
js-apis-application-abilitystage.md
js-apis-application-applicationContext.md
js-apis-application-context.md
js-apis-application-shellCmdResult.md
js-apis-application-staticSubscriberExtensionAbility.md
js-apis-appmanager.md
js-apis-arraylist.md
js-apis-audio.md
js-apis-backgroundTaskManager.md
js-apis-battery-info.md
js-apis-bluetooth.md
js-apis-brightness.md
js-apis-bundle-AbilityInfo.md
js-apis-bundle-ApplicationInfo.md
js-apis-bundle-BundleInfo.md
js-apis-bundle-BundleInstaller.md
js-apis-bundle-CustomizeData.md
js-apis-bundle-ExtensionAbilityInfo.md
js-apis-bundle-HapModuleInfo.md
js-apis-bundle-Metadata.md
js-apis-bundle-ModuleInfo.md
js-apis-bundle-PermissionDef.md
js-apis-bundle-ShortcutInfo.md
js-apis-bundle-remoteAbilityInfo.md
js-apis-bytrace.md
js-apis-call.md
js-apis-camera.md
js-apis-cardEmulation.md
js-apis-commonEvent.md
js-apis-config-policy.md
js-apis-configuration.md
js-apis-configurationconstant.md
js-apis-connectedTag.md
js-apis-contact.md
js-apis-convertxml.md
js-apis-data-ability.md
js-apis-data-distributedobject.md
js-apis-data-preferences.md
js-apis-data-rdb.md
js-apis-data-resultset.md
js-apis-data-storage.md
js-apis-dataAbilityHelper.md
js-apis-deque.md
js-apis-device-info.md
js-apis-device-manager.md
js-apis-deviceUsageStatistics.md
js-apis-display.md
js-apis-distributed-account.md
js-apis-distributed-data.md
js-apis-document.md
js-apis-emitter.md
js-apis-enterprise-device-manager.md
js-apis-environment.md
js-apis-eventhub.md
js-apis-extension-context.md
js-apis-extensionrunninginfo.md
js-apis-faultLogger.md
js-apis-featureAbility.md
js-apis-fileio.md
js-apis-filemanager.md
js-apis-formInfo.md
js-apis-formbindingdata.md
js-apis-formerror.md
js-apis-formextension.md
js-apis-formextensioncontext.md
js-apis-formhost.md
js-apis-formprovider.md
js-apis-geolocation.md
js-apis-hashmap.md
js-apis-hashset.md
js-apis-hiappevent.md
js-apis-hichecker.md
js-apis-hidebug.md
js-apis-hilog.md
js-apis-hitracechain.md
js-apis-hitracemeter.md
js-apis-http.md
js-apis-huks.md
js-apis-i18n.md
js-apis-image.md
js-apis-inputconsumer.md
js-apis-inputdevice.md
js-apis-inputevent.md
js-apis-inputeventclient.md
js-apis-inputmethod.md
js-apis-inputmethodengine.md
js-apis-inputmonitor.md
js-apis-intl.md
js-apis-keycode.md
js-apis-keyevent.md
js-apis-lightweightmap.md
js-apis-lightweightset.md
js-apis-linkedlist.md
js-apis-list.md
js-apis-logs.md
js-apis-media.md
js-apis-medialibrary.md
js-apis-mediaquery.md
js-apis-missionManager.md
js-apis-mouseevent.md
js-apis-net-connection.md
js-apis-nfcController.md
js-apis-nfcTag.md
js-apis-notification.md
js-apis-observer.md
js-apis-osAccount.md
js-apis-particleAbility.md
js-apis-pasteboard.md
js-apis-permissionrequestresult.md
js-apis-plainarray.md
js-apis-power.md
js-apis-process.md
js-apis-processrunninginfo.md
js-apis-prompt.md
js-apis-queue.md
js-apis-radio.md
js-apis-reminderAgent.md
js-apis-request.md
js-apis-resource-manager.md
js-apis-router.md
js-apis-rpc.md
js-apis-runninglock.md
js-apis-screen-lock.md
js-apis-screen.md
js-apis-screenshot.md
js-apis-securityLabel.md
js-apis-sensor.md
js-apis-service-extension-ability.md
js-apis-service-extension-context.md
js-apis-settings.md
js-apis-sim.md
js-apis-sms.md
js-apis-socket.md
js-apis-stack.md
js-apis-statfs.md
js-apis-storage-statistics.md
js-apis-system-app.md
js-apis-system-battery.md
js-apis-system-bluetooth.md
js-apis-system-brightness.md
js-apis-system-cipher.md
js-apis-system-configuration.md
js-apis-system-device.md
js-apis-system-fetch.md
js-apis-system-file.md
js-apis-system-location.md
js-apis-system-mediaquery.md
js-apis-system-network.md
js-apis-system-notification.md
js-apis-system-package.md
js-apis-system-parameter.md
js-apis-system-prompt.md
js-apis-system-request.md
js-apis-system-router.md
js-apis-system-sensor.md
js-apis-system-storage.md
js-apis-system-time.md
js-apis-system-vibrate.md
js-apis-telephony-data.md
js-apis-testRunner.md
js-apis-thermal.md
js-apis-timer.md
js-apis-touchevent.md
js-apis-treemap.md
js-apis-treeset.md
js-apis-uitest.md
js-apis-update.md
js-apis-uri.md
js-apis-uripermissionmanager.md
js-apis-url.md
js-apis-usb.md
js-apis-useriam-userauth.md
js-apis-util.md
js-apis-vector.md
js-apis-vibrator.md
js-apis-volumemanager.md
js-apis-wallpaper.md
js-apis-wantAgent.md
js-apis-webSocket.md
js-apis-webgl.md
js-apis-webgl2.md
js-apis-wifi.md
js-apis-wifiext.md
js-apis-window.md
js-apis-workScheduler.md
js-apis-worker.md
js-apis-xml.md
js-apis-zlib.md
arkui-js
arkui-ts
native-apis
native-lib
Readme-CN.md
security
task-management
telephony
ui
webgl
windowmanager
Readme-CN.md
application-dev-guide-for-gitee.md
application-dev-guide.md
website.md
contribute
design
device-dev
figures
readme
release-notes
OpenHarmony-Overview_zh.md
glossary.md
readme.md
website.md
.gitattributes
.gitignore
CODEOWNERS
DCO.txt
LICENSE
OAT.xml
README.md
README_zh.md
克隆/下载
js-apis-uitest.md 31.85 KB
一键复制 编辑 原始数据 按行查看 历史

UiTest

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

该模块提供以下功能:

  • By:提供控件特征描述能力,用于控件筛选匹配查找。
  • UiComponent:代表UI界面上的指定控件,提供控件属性获取,控件点击,滑动查找,文本注入等能力。
  • UiDriver:入口类,提供控件匹配/查找,按键注入,坐标点击/滑动,截图等能能力。

说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import {UiDriver,BY,MatchPattern} from '@ohos.uitest'

By

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

BY.text('123').type('button')

text

text(txt: string, pattern?: MatchPattern): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
txt string 指定控件文本,用于匹配目标控件文本。
pattern MatchPattern 指定的文本匹配模式,默认为EQUALS

返回值:

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

示例:

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

key

key(key: string): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
key string 指定控件的Key值。

返回值:

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

示例:

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

id

id(id: number): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
id number 指定控件的id值。

返回值:

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

示例:

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

type

type(tp: string): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
tp string 指定控件类型。

返回值:

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

示例:

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

clickable

clickable(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

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

示例:

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

longClickable9+

longClickable(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

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

示例:

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

scrollable

scrollable(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
b bool 控件可滑动状态,默认为true。

返回值:

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

示例:

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

enabled

enabled(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
b bool 指定控件使能状态,默认为true。

返回值:

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

示例:

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

focused

focused(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
b bool 控件获焦状态,默认为true。

返回值:

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

示例:

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

selected

selected(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

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

示例:

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

checked9+

checked(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

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

示例:

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

checkable9+

checkable(b?: bool): By

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

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

示例:

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

isBefore

isBefore(by: By): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 特征控件的属性。

返回值:

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

示例:

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

isAfter

isAfter(by: By): By

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 特征控件的属性。

返回值:

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

示例:

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

UiComponent

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

Rect9+

控件的边框信息。

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

click

click(): Promise<void>

控件对象进行点击操作。

系统能力:SystemCapability.Test.UiTest

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    await button.click()
}

doubleClick

doubleClick(): Promise<void>

控件对象进行双击操作。

系统能力:SystemCapability.Test.UiTest

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    await button.doubleClick()
}

longClick

longClick(): Promise<void>

控件对象进行长按操作。

系统能力:SystemCapability.Test.UiTest

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    await button.longClick()
}

getId

getId(): Promise<number>

获取控件对象的id值。

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<number> 以Promise形式返回的控件的id值。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let num = await button.getId()
}

getKey

getKey(): Promise<string>

获取控件对象的key值。

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<string> 以Promise形式返回控件的key值。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let str_key = await button.getKey()
}

getText

getText(): Promise<string>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<string> 以Promise形式返回控件的文本信息。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let text = await button.getText()
}

getType

getType(): Promise<string>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<string> 以Promise形式返回控件的类型。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let type = await button.getType()
}

getBounds9+

getBounds(): Promise<Rect>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<Rect> 以Promise形式返回控件对象的边框信息。

示例:

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

isClickable

isClickable(): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象可点击状态。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isClickable()) {
        console.info('This button can be Clicked')
    }
    else{
        console.info('This button can not be Clicked')
    }
}

isLongClickable9+

isLongClickable(): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象能否长按点击状态。

示例:

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

isChecked9+

isChecked(): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象被勾选状态。

示例:

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

isCheckable9+

isCheckable(): Promise<bool>

获取控件对象能否被勾选的属性。

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象能否被勾选的属性。

示例:

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

isScrollable

isScrollable(): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象可滑动状态。

示例:

async function demo() {
    let driver = UiDriver.create()
    let scrollBar = await driver.findComponent(BY.scrollable(true))
    if(await scrollBar.isScrollable()) {
        console.info('This scrollBar can be operated')
    }
    else{
        console.info('This scrollBar can not be operated')
    }
}

isEnabled

isEnabled(): Promise<bool>

获取控件使能状态。

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件使能状态。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isEnabled()) {
        console.info('This button can be operated')
    }
    else{
        console.info('This button can not be operated')
    }
}

isFocused

isFocused(): Promise<bool>

判断控件对象是否获焦。

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 以Promise形式返回控件对象是否获焦。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isFocused()) {
        console.info('This button is focused')
	}
    else{
        console.info('This button is not focused')
	}
}

isSelected

isSelected(): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
Promise<bool> 控件对象被选中的状态

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    if(await button.isSelected()) {
        console.info('This button is selected')
	}
    else{
        console.info('This button is not selected')
    }
}

inputText

inputText(text: string): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
text string 输入的文本信息。

示例:

async function demo() {
    let driver = UiDriver.create()
    let text = await driver.findComponent(BY.text('hello world'))
    await text.inputText('123')
}

clearText9+

clearText(): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

示例:

async function demo() {
    let driver = UiDriver.create()
    let text = await driver.findComponent(BY.text('hello world'))
    await text.clearText()
}

scrollSearch

scrollSearch(by: By): Promise<UiComponent>

在控件上滑动查找目标控件(适用于List等支持滑动的控件)。

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 目标控件的属性要求。

返回值:

类型 说明
Promise<UiComponent> 以Promise形式返回找到的目标控件对象。

示例:

async function demo() {
    let driver = UiDriver.create()
    let scrollBar = await driver.findComponent(BY.type('Scroll'))
    let button = await scrollBar.scrollSearch(BY.text('next page'))
}

scrollToTop9+

scrollToTop(): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

示例:

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

scrollToBottom9+

scrollToBottom(): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

示例:

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

dragTo9+

dragTo(target: UiComponent): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
target UiComponent 目标控件。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.type('button'))
    let text = await driver.findComponent(BY.text('hello world'))
    await button.dragTo(text)
    }

UiDriver

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

create

static create(): UiDriver

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

系统能力:SystemCapability.Test.UiTest

返回值:

类型 说明
UiDrive 返回构造的UiDriver对象。

示例:

async function demo() {
    let driver = UiDriver.create()
}

delayMs

delayMs(duration: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
duration number 给定的时间。

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.delayMs(1000)
}

findComponent

findComponent(by: By): Promise<UiComponent>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 目标控件的属性要求。

返回值:

类型 说明
Promise<UiComponent> 以Promise形式返回找到的控件对象。

示例:

async function demo() {
    let driver = UiDriver.create()
    let button = await driver.findComponent(BY.text('next page'))
}

findComponents

findComponents(by: By): Promise<Array<UiComponent>>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 目标控件的属性要求。

返回值:

类型 说明
Promise<Array<UiComponent>> 以Promise形式返回找到的控件对象的列表。

示例:

async function demo() {
    let driver = UiDriver.create()
    let buttonList = await driver.findComponents(BY.text('next page'))
}

waitForComponent9+

waitForComponent(by: By, time: number): Promise<UiComponent>

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

系统能力:SystemCapability.Test.UiTest

参数:

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

返回值:

类型 说明
Promise<UiComponent> 以Promise形式返回找到的控件对象。

示例:

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

assertComponentExist

assertComponentExist(by: By): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
by By 目标控件的属性要求。

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.assertComponentExist(BY.text('next page'))
}

pressBack

pressBack(): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.pressBack()
}

triggerKey

triggerKey(keyCode: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
keyCode number 指定的key值。

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.triggerKey(123)
}

click

click(x: number, y: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

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

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.click(100,100)
}

doubleClick

doubleClick(x: number, y: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

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

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.doubleClick(100,100)
}

longClick

longClick(x: number, y: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

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

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.longClick(100,100)
}

swipe

swipe(startx: number, starty: number, endx: number, endy: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
startx number 以number的形式传入起始点的横坐标信息。
starty number 以number的形式传入起始点的纵坐标信息。
endx number 以number的形式传入目的点的横坐标信息。
endy number 以number的形式传入目的点的纵坐标信息。

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.swipe(100,100,200,200)
}

drag9+

drag(startx: number, starty: number, endx: number, endy: number): Promise<void>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
startx number 以number的形式传入起始点的横坐标信息。
starty number 以number的形式传入起始点的纵坐标信息。
endx number 以number的形式传入目的点的横坐标信息。
endy number 以number的形式传入目的点的纵坐标信息。

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.drag(100,100,200,200)
}

screenCap

screenCap(savePath: string): Promise<bool>

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

系统能力:SystemCapability.Test.UiTest

参数:

参数名 类型 必填 说明
savePath string 文件保存路径。

返回值:

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

示例:

async function demo() {
    let driver = UiDriver.create()
    await driver.screenCap('/local/tmp/')
}

MatchPattern

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

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

名称 说明
EQUALS 0 等于给定值。
CONTAINS 1 包含给定值。
STARTS_WITH 2 从给定值开始。
ENDS_WITH 3 以给定值结束。
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/openharmony/docs.git
git@gitee.com:openharmony/docs.git
openharmony
docs
docs
OpenHarmony-3.2-Beta1

搜索帮助