收藏
回答

小程序自动化Page实例为什么没有自定义属性?

开发者工具版本Stable v1.0.2.1911180、Mac平台。

自动化工具Automator获取不到页面中的一些属性。

业务页面A的代码:

Page({
  data: {},
  paramA: 'aaa',
  onLoad() {}
      })


自动化测试代码:

const automator = require('miniprogram-automator')
const path = require('path')

describe('A页面', () => {
  let miniProgram
  let page

  beforeAll(async () => {
    miniProgram = await automator.launch({
      projectPath: path.join(__dirname, '../../dist')
    })
  }, 30000)

  test('参数处理', async () => {
    page = await miniProgram.navigateTo('/pages/to')
    await page.waitFor(1000)
    expect(page.paramA).toBe('123')
  }, 30000)

  afterAll(async () => {
    await miniProgram.close()
  })
})


页面data属性之外的数据属性paramA是undefined。这个能支持下么?

回答关注问题邀请回答
收藏

3 个回答

  • 鹏波
    鹏波
    07-04

    找到了解决方法。

    使用evaluate方法,获取的页面栈中的元素是含有自定义的属性的。

    _pages = await miniProgram.evaluate(() => {
      return getCurrentPages()
    })
    _page = _pages[_pages.length - 1]
    
    07-04
    有用
    回复
  • 圣殿骑士
    圣殿骑士
    06-29

    这是人家小程序的页面规则

    实在要解析的话,你可以尝试page() 外面价格全局变量,做深copy 或者 每次执行的时候再赋值

    另外你这个是mac里面的那个工具吗?

    06-29
    有用
    回复 1
    • 鹏波
      鹏波
      06-29
      谢谢回复。
      1. 非页面渲染使用到的数据最佳实践还是放到data外的,小程序体验评分也会有这个建议
      2. 全局变量也不太好,有污染和被其他模块错误修改的风险


      “mac里面的那个工具”是哪个工具?环境是:Mac开发者工具+miniprogram-automator
      06-29
      回复
  • _天马行空_
    _天马行空_
    06-29

    看看这个https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

    06-29
    有用
    回复 2
登录 后发表内容
问题标签