# Element

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

# 属性

# element.tagName

标签名,小写。

element.tagName: string 

# 方法

# element.$

在元素范围内获取元素。

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() let element = await page.$('.index-hd') element = await element.$('.index-desc') console.log(await element.text()) }) 

# element.$$

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-bd') const elements = await element.$$('.kind-list-text') console.log(await elements[0].text()) }) 

# element.size

获取元素大小。

element.size(): Promise<Object> 

返回值说明

字段 类型 说明
width number 元素宽度
height number 元素高度

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-bd') const { width, height } = await element.size() console.log(width, height) }) 

# element.offset

获取元素绝对位置。

element.offset(): Promise<Object> 

返回值说明

字段 类型 说明
left number 左上角 x 坐标,单位:px
top number 左上角 y 坐标,单位:px

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-bd') const { left top } = await element.offset() console.log(left, top) }) 

# element.text

获取元素文本。

element.text(): Promise<string> 

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-desc') console.log(await element.text()) }) 

# element.attribute

获取元素特性。

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-logo') console.log(await element.attribute('src')) // -> 'resources/kind/logo.png' }) 

# element.property

automator 0.9.0,基础库 2.9.5 开始支持。

获取元素属性。

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

参数说明

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

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

  • element.attribute 获取的是标签上的值,因此它的返回类型一定是字符串,element.property 则不一定。
  • element.attribute 可以获取到 class 和 id 之类的值,element.property 不行。
  • element.property 可以获取到文档里对应组件列举的大部分属性值,比如表单 input 等组件的 value 值。

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('input') console.log(await element.property('value')) }) 

# element.wxml

获取元素 WXML。

element.wxml(): Promise<string> 

# element.outerWxml

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

element.outerWxml(): Promise<string> 

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-desc') console.log(await element.wxml()) console.log(await element.outerWxml()) }) 

# element.value

获取元素值。

element.value(): Promise<string> 

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.weui-input') console.log(await element.value()) }) 

# element.style

获取元素样式值。

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.index-desc') console.log(await element.style('color')) // -> 'rgb(136, 136, 136)' }) 

# element.tap

点击元素。

element.tap(): Promise<void> 

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('.kind-list-item-hd') await element.tap() }) 

# element.longpress

长按元素。

element.longpress(): Promise<void> 

# element.touchstart

automator 0.8.0,基础库 2.9.1 开始支持。

手指开始触摸元素。

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

options 字段定义如下:

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

# element.touchmove

automator 0.8.0,基础库 2.9.1 开始支持。

手指触摸元素后移动。

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

options 字段同 touchstart。

# element.touchend

automator 0.8.0,基础库 2.9.1 开始支持。

手指结束触摸元素。

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

options 字段同 touchstart。

automator.launch().then(async miniProgram => { const page = await miniProgram.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> 

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('picker') await element.trigger('change', { value: 1 }) }) 

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

# element.input

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('input') await element.input('test') }) 

# element.callMethod

automator 0.6.0,基础库 2.9.0 开始支持。

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

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

参数说明

字段 类型 必填 默认值 说明
method string - 需要调用的方法名
...args array<any> - 方法参数

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('set-tab-bar') await element.callMethod('navigateBack') }) 

# element.data

automator 0.6.0,基础库 2.9.0 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('set-tab-bar') console.log(await element.data('hasSetTabBarBadge')) }) 

# element.setData

automator 0.6.0,基础库 2.9.0 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('set-tab-bar') await page.setData({ hasSetTabBarBadge: true }) }) 

# element.callContextMethod

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

字段 类型 必填 默认值 说明
method string - 需要调用的方法名
...args array<any> - 方法参数

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

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('video') await element.callContextMethod('play') }) 

# element.scrollWidth

automator 0.9.0,基础库 2.9.5 开始支持。

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

element.scrollWidth(): Promise<number> 

# element.scrollHeight

automator 0.9.0,基础库 2.9.5 开始支持。

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

element.scrollHeight(): Promise<number> 

# element.scrollTo

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

字段 类型 必填 默认值 说明
x number - 横向滚动位置
y number - 纵向滚动位置

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('scroll-view') const y = (await element.scrollHeight()) - 50 await element.scrollTo(0, y) }) 

# element.swipeTo

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('swiper') await element.swipeTo(2) }) 

# element.moveTo

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('movable-view') await element.moveTo(40, 40) }) 

# element.slideTo

automator 0.9.0,基础库 2.9.5 开始支持。

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

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

参数说明

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

示例代码:

automator.launch().then(async miniProgram => { const page = await miniProgram.currentPage() const element = await page.$('slider') await element.slideTo(10) })