请教:miniprogram-automator
根据官方文档脚本示例:
// 启动并连接工具
// 重新启动小程序到首页
// 断开连接并关闭工具
const automator = require('miniprogram-automator')
let miniProgram
let page
describe('index', () => {
beforeAll(async () => {
miniProgram = await automator.launch({
projectPath: 'E:/study/test/miniprogram-demo-master/miniprogrampath/',
cliPath:'D:/Program Files (x86)/Tencent/微信web开发者工具/cli.bat'
})
try{
page = await miniProgram.reLaunch('/page/component/index')
}
catch(e){
// 处理出错情况
console.log(e.message)
}
await page.waitFor(500)
}, 30000)
afterAll(async () => {
await miniProgram.close()
})
})
// 1. 测试顶部描述
// 通过 .index-desc 选择器获取目标元素
// 目标元素应该是个 view 组件
// 目标元素应该包含有“以下将展示小程序官方组件能力”的文本
it('desc', async () => {
const desc = await page.$('.index-desc')
expect(desc.tagName).toBe('view')
expect(await desc.text()).toContain('以下将展示小程序官方组件能力')
})
// 2. 测试列表项
// 获取列表元素集合
// 目标元素集的个数应该是 8 个
// 第一个列表元素的标题应该是“视图窗器”
// it('list', async () => {
// const lists = await page.$$('.kind-list-item')
// expect(lists.length).toBe(9)
// const list = await lists[0].$('.kind-list-item-hd')
// expect(await list.text()).toBe('视图容器')
// })
// 3. 测试列表项行为
// 点击列表标题应该展示或隐藏子列表
// 点击子列表项应该会跳转到指定页面
// it('list action', async () => {
// const listHead = await page.$('.kind-list-item-hd')
// expect(await listHead.attribute('class')).toBe('kind-list-item-hd')
// await listHead.tap()
// await page.waitFor(200)
// expect(await listHead.attribute('class')).toBe(
// 'kind-list-item-hd kind-list-item-hd-show',
// )
// await listHead.tap()
// await page.waitFor(200)
// expect(await listHead.attribute('class')).toBe('kind-list-item-hd')
// await listHead.tap()
// await page.waitFor(200)
// const item = await page.$('.index-bd navigator')
// await item.tap()
// await page.waitFor(500)
// expect((await miniProgram.currentPage()).path).toBe('page/component/pages/view/view')
// })
jest index.spec.js
运行后报错:
TypeError: Cannot read property '$' of undefined
如何解决?
await page.$('.uploader') 报错Cannot read property '$' of undefined
应该是page = await miniProgram.reLaunch('/page/component/index')没有获取到,
1)await page.waitFor(500) 应该是500太小了,调大些,
2)查看电脑任务管理器,看看后台进程中是不是有很多的小程序开发工具的进程,结束掉
3)电脑太累了。。。关闭一些软件试试呢,尴尬。。。。。
你好,请在以下链接提交issue
https://git.weixin.qq.com/minitest/minium-doc/issues/new?assignee_id=&milestone_id=