Page

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

属性

page.path

页面路径。

  1. page.path: string

page.query

页面参数。

  1. page.query: Object

方法

page.$

获取页面元素。

  1. page.$(selector: string): Promise<Element>

参数说明

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

同 WXSS,仅支持部分 CSS 选择器,点击此处查看详细信息。

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. const element = await page.$('.index-desc')
  4. console.log(element.tagName) // -> 'view'
  5. })

page.$$

获取页面元素数组。

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

参数说明

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

该方法跟 $ 一样均无法选择自定义组件内的元素,请使用 element.$

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. const elements = await page.$$('.kind-list-text')
  4. console.log(elements.length)
  5. })

page.waitFor

等待直到指定条件成立。

  1. page.waitFor(condition: string | number | Function): Promise<void>

参数说明

字段类型必填默认值说明
conditionstring number Function-等待条件

如果条件是 string 类型,那么该参数会被当成选择器,当该选择器选中元素个数不为零时,结束等待。

如果条件是 number 类型,那么该参数会被当成超时时长,当经过指定时间后,结束等待。

如果条件是 Function 类型,那么该参数会被当成断言函数,当该函数返回真值时,结束等待。

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. await page.waitFor(5000) // 等待 5 秒
  4. await page.waitFor('picker') // 等待页面中出现 picker 元素
  5. await page.waitFor(async () => {
  6. return (await page.$$('picker')).length > 5
  7. }) // 等待页面中 picker 元素数量大于 5
  8. })

page.data

传递数据路径 automator 0.6.0,基础库 2.9.0 开始支持。

获取页面渲染数据。

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

参数说明

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

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. console.log(await page.data('list'))
  4. })

page.setData

设置页面渲染数据。

  1. page.setData(data: Object): Promise<void>

参数说明

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

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. await page.setData({
  4. text: 'changed data'
  5. })
  6. })

page.size

获取页面大小。

  1. page.size(): Promise<Object>

返回值说明

字段类型说明
widthnumber页面可滚动宽度
heightnumber页面可滚动高度

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. const { width, height } = await page.size()
  4. console.log(width, height)
  5. })

page.scrollTop

automator 0.7.0 开始支持。

获取页面滚动位置。

  1. page.scrollTop(): Promise<number>

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. await miniProgram.pageScrollTo(20)
  4. console.log(await page.scrollTop())
  5. })

page.callMethod

调用页面指定方法。

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

参数说明

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

示例代码:

  1. automator.launch().then(async miniProgram => {
  2. const page = await miniProgram.currentPage()
  3. await page.callMethod('onShareAppMessage')
  4. })