开发者工具版本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。这个能支持下么?
找到了解决方法。
使用evaluate方法,获取的页面栈中的元素是含有自定义的属性的。
_pages = await miniProgram.evaluate(() => { return getCurrentPages() }) _page = _pages[_pages.length - 1]
这是人家小程序的页面规则
实在要解析的话,你可以尝试page() 外面价格全局变量,做深copy 或者 每次执行的时候再赋值
另外你这个是mac里面的那个工具吗?
1. 非页面渲染使用到的数据最佳实践还是放到data外的,小程序体验评分也会有这个建议
2. 全局变量也不太好,有污染和被其他模块错误修改的风险
“mac里面的那个工具”是哪个工具?环境是:Mac开发者工具+miniprogram-automator
看看这个https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html