您现在的位置是:网站首页> 小程序设计

uniapp Element API

摘要

Element

Element 模块提供了控制页面元素的方法。

属性

element.tagName

标签名,小写。

element.tagName: string

方法

element.$

在元素范围内获取元素。

element.$(selector: string): Promise<Element>

参数说明

字段类型必填默认值说明
selectorstring-选择器

示例代码:

const page = await program.currentPage()  let element = await page.$('.index-hd')  element = await element.$('.index-desc')  console.log(await element.text())


element.$$

在元素范围内获取元素数组。

element.$$(selector: string): Promise<Element[]>

参数说明

字段类型必填默认值说明
selectorstring-选择器

示例代码:

 const page = await program.currentPage()  const element = await page.$('.index-bd')  const elements = await element.$$('.list-text')  console.log(await elements[0].text())


element.size

获取元素大小。

element.size(): Promise<Object>

返回值说明

字段类型说明
widthnumber元素宽度
heightnumber元素高度

示例代码:

 const page = await program.currentPage()  const element = await page.$('.index-bd')  const { width, height } = await element.size()  console.log(width, height)


element.offset

获取元素绝对位置。

element.offset(): Promise<Object>

返回值说明

字段类型说明
leftnumber左上角x坐标,单位:px
topnumber左上角y坐标,单位:px

坐标信息以页面左上角为原点。

示例代码:

 const page = await program.currentPage()  const element = await page.$('.index-bd')  const { left top } = await element.offset()  console.log(left, top)


element.text

获取元素文本。

element.text(): Promise<string>

示例代码:

 const page = await program.currentPage()  const element = await page.$('.index-desc')  console.log(await element.text())


element.attribute

获取元素特性。

element.attribute(name: string): Promise<string>

参数说明

字段类型必填默认值说明
namestring-特性名

示例代码:

const page = await program.currentPage()  const element = await page.$('.logo')  console.log(await element.attribute('src')) // -> 'static/logo.png'


element.property

获取元素属性。

element.property(name: string): Promise<any>

参数说明

字段类型必填默认值说明
namestring-属性名

element.property 与 element.attribute 主要区别如下:

element.attribute 获取的是标签上的值,因此它的返回类型一定是字符串,element.property 则不一定。

element.attribute 可以获取到 class 和 id 之类的值,element.property 不行。

element.property 可以获取到文档里对应组件列举的大部分属性值,比如表单 input 等组件的 value 值。

示例代码:

const page = await program.currentPage()  const element = await page.$('input')  console.log(await element.property('value'))


element.html

获取元素 HTML。

element.html(): Promise<string>

element.outerHtml

同 html,只是会获取到元素本身。

element.outerHtml(): Promise<string>

示例代码:

const page = await program.currentPage()  const element = await page.$('.index-desc')  console.log(await element.html())  console.log(await element.outerHtml())


element.value

获取元素值。

element.value(): Promise<string>

示例代码:

const page = await program.currentPage()  const element = await page.$('.input')  console.log(await element.value())


element.style

获取元素样式值。

element.style(name: string): Promise<string>

参数说明

字段类型必填默认值说明
namestring-样式名

示例代码:

const page = await program.currentPage()  const element = await page.$('.index-desc')  console.log(await element.style('color')) // -> 'rgb(128, 128, 128)'


element.tap

点击元素。

element.tap(): Promise<void>

示例代码:

const page = await program.currentPage()  const element = await page.$('.list-item-hd')  await element.tap()


element.longpress

长按元素。

element.longpress(): Promise<void>

element.touchstart

手指开始触摸元素。

element.touchstart(options: Object): Promise<void>

options 字段定义如下:

字段类型必填默认值说明
touchesarray-触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouchesarray-触摸事件,当前变化的触摸点信息的数组

element.touchmove

手指触摸元素后移动。

element.touchmove(options: Object): Promise<void>

options 字段同 touchstart。

element.touchend

手指结束触摸元素。

element.touchend(options: Object): Promise<void>

options 字段同 touchstart。

const page = await program.currentPage()  const element = await page.$('.touch')  await element.touchstart({    touches: [      {        identifier: 1,        pageX: 500,        pageY: 500      }    ],    changedTouches: [      {        identifier: 1,        pageX: 500,        pageY: 500      }    ]  })  await element.touchend({    touches: [],    changedTouches: [      {        identifier: 1,        pageX: 500,        pageY: 500      }    ]  })


element.trigger

触发元素事件。

element.trigger(type: string, detail?: Object): Promise<void>

参数说明

字段类型必填默认值说明
typestring-触发事件类型
detailObject-触发事件时传递的 detail 值

示例代码:

const page = await program.currentPage()  const element = await page.$('picker')  await element.trigger('change', { value: 1 })


该方法无法改变组件状态,仅触发响应方法,也无法触发用户操作事件,即 taplongpress 等事件,请使用对应的其它方法调用。

element.input

输入文本,仅 input、textarea 组件可以使用。

element.input(value: string): Promise<void>

参数说明

字段类型必填默认值说明
valuestring-需要输入的文本

示例代码:

const page = await program.currentPage()  const element = await page.$('input')  await element.input('test')

element.callMethod

调用组件实例指定方法,仅自定义组件可以使用。

element.callMethod(method: string, ...args: any[]): Promise<any>

参数说明

字段类型必填默认值说明
methodstring-需要调用的方法名
...argsarray-方法参数

示例代码:

const page = await program.currentPage()  const element = await page.$('set-tab-bar')  await element.callMethod('navigateBack')


element.data

获取组件实例渲染数据,仅自定义组件可以使用。

element.data(path?: string): Promise<Object>

参数说明

字段类型必填默认值说明
pathstring-数据路径

示例代码:

const page = await program.currentPage()  const element = await page.$('set-tab-bar')  console.log(await element.data('hasSetTabBarBadge'))


element.setData

设置组件实例渲染数据,仅自定义组件可以使用。

element.setData(data: Object): Promise<void>

参数说明

字段类型必填默认值说明
dataObject-要改变的数据

示例代码:

const page = await program.currentPage()  const element = await page.$('set-tab-bar')  await page.setData({    hasSetTabBarBadge: true  })

element.callContextMethod

调用上下文 Context 对象方法,仅 video 组件可以使用。

element.callContextMethod(method: string, ...args: any[]): Promise<any>

参数说明

字段类型必填默认值说明
methodstring-需要调用的方法名
...argsarray-方法参数

video 组件必须设置了 id 才能使用。

const page = await program.currentPage()  const element = await page.$('video')  await element.callContextMethod('play')

element.scrollWidth

获取滚动宽度,仅 scroll-view 组件可以使用。

element.scrollWidth(): Promise<number>

element.scrollHeight

获取滚动高度,仅 scroll-view 组件可以使用。

element.scrollHeight(): Promise<number>

element.scrollTo

滚动到指定位置,仅 scroll-view 组件可以使用。

element.scrollTo(x: number, y: number): Promise<void>

参数说明

字段类型必填默认值说明
xnumber-横向滚动位置
ynumber-纵向滚动位置

示例代码:

const page = await program.currentPage()  const element = await page.$('scroll-view')  const y = (await element.scrollHeight()) - 50  await element.scrollTo(0, y)

element.swipeTo

滑动到指定滑块,仅 swiper 组件可以使用。

element.swipeTo(index: number): Promise<void>

参数说明

字段类型必填默认值说明
indexnumber-目标滑块的 index

示例代码:

const page = await program.currentPage()  const element = await page.$('swiper')  await element.swipeTo(2)

element.moveTo

移动视图容器,仅 movable-view 组件可以使用。

element.moveTo(x: number, y: number): Promise<void>

参数说明

字段类型必填默认值说明
xnumber-x 轴方向的偏移
ynumber-y 轴方向的偏移

示例代码:

const page = await program.currentPage()  const element = await page.$('movable-view')  await element.moveTo(40, 40)

element.slideTo

滑动到指定数值,仅 slider 组件可以使用。

element.slideTo(value: number): Promise<void>

参数说明

字段类型必填默认值说明
valuenumber-要设置的值

示例代码:

const page = await program.currentPage()  const element = await page.$('slider')  await element.slideTo(10)

平台差异

program(全局对象)

方法APP-NVUEAPP-VUEH5微信小程序百度小程序说明
pageStack获取小程序页面堆栈
navigateTo保留当前页面,跳转到应用内的某个页面,同uni.navigateTo
redirectTo关闭当前页面,跳转到应用内的某个页面,同uni.redirectTo
navigateBack关闭当前页面,返回上一页面,同uni.navigateBack
reLaunch关闭所有页面,打开到应用内的某个页面,同uni.reLaunch
switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,同uni.switchTab
currentPage获取当前页面
systemInfo获取系统信息,同uni.getSystemInfo
pageScrollTox将页面滚动到目标位置,同uni.pageScrollTo
callUniMethod调用 uni 对象上的指定方法
screenshotx对当前页面截图,目前只有开发者工具模拟器支持,客户端无法使用
mockUniMethod覆盖 uni 对象上指定方法的调用结果
restoreUniMethod重置 uni 指定方法,消除 mockUniMethod 调用的影响
testAccountsxxxx获取多账号调试中已添加的用户列表
evaluatexxxx注入代码片段并返回执行结果
exposeFunctionxxxx在全局暴露方法,供小程序侧调用测试脚本中的方法

Page

属性APP-NVUEAPP-VUEH5微信小程序百度小程序说明
path页面路径
query页面参数
方法APP-NVUEAPP-VUEH5微信小程序百度小程序说明
$获取页面元素
$$获取页面元素数组
waitFor等待直到指定条件成立
data获取页面渲染数据
setData设置页面渲染数据
size获取页面大小(width,height)
scrollTop获取页面滚动位置
callMethod调用页面指定方法

Element

属性APP-NVUEAPP-VUEH5微信小程序百度小程序说明
tagName标签名,小写
方法APP-NVUEAPP-VUEH5微信小程序百度小程序说明
$在元素范围内获取元素
$$在元素范围内获取元素数组
size获取元素大小(width,height)
offset获取元素绝对位置(left,top)
text获取元素文本
attribute获取元素特性
style获取元素样式值
tap点击元素
value获取元素值
callMethod调用组件实例指定方法,仅自定义组件可以使用
html获取元素 HTML
outerHtml同 html,只是会获取到元素本身
data获取组件实例渲染数据,仅自定义组件可以使用
setData设置组件实例渲染数据,仅自定义组件可以使用
propertyx获取元素属性
touchstartx手指开始触摸元素
touchmovex手指触摸元素后移动
touchendx手指结束触摸元素
longpressx获取元素文本
triggerx触发元素事件
inputx输入文本,仅 input、textarea 组件可以使用
callContextMethodxxxx调用上下文 Context 对象方法,仅 video 组件可以使用
scrollWidthxx获取滚动宽度,仅 scroll-view 组件可以使用
scrollHeightxx获取滚动高度,仅 scroll-view 组件可以使用
scrollToxx滚动到指定位置,仅 scroll-view 组件可以使用
swipeTox滑动到指定滑块,仅 swiper 组件可以使用
moveTox移动视图容器,仅 movable-view 组件可以使用
slideTox滑动到指定数值,仅 slider 组件可以使用

测试平台判断

if (process.env.UNI_PLATFORM === "h5") {} if (process.env.UNI_PLATFORM === "app-plus") {} if (process.env.UNI_PLATFORM === "mp-weixin") {} if (process.env.UNI_PLATFORM === "mp-baidu") {}

上一篇:uniapp编译相关

下一篇:uniapp API查看

Top