收藏
回答

小程序自动化报错Cannot read property '$' of undefined?

请教: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

如何解决?

最后一次编辑于  2020-11-26
回答关注问题邀请回答
收藏

2 个回答

  • 无敌胖胖
    无敌胖胖
    2021-01-07

     await page.$('.uploader') 报错Cannot read property '$' of undefined

    应该是page = await miniProgram.reLaunch('/page/component/index')没有获取到,

    1)await page.waitFor(500) 应该是500太小了,调大些,

    2)查看电脑任务管理器,看看后台进程中是不是有很多的小程序开发工具的进程,结束掉

    3)电脑太累了。。。关闭一些软件试试呢,尴尬。。。。。



    2021-01-07
    有用
    回复
  • Cjiang
    Cjiang
    2020-11-26

    你好,请在以下链接提交issue 

    https://git.weixin.qq.com/minitest/minium-doc/issues/new?assignee_id=&milestone_id=

    2020-11-26
    有用
    回复
登录 后发表内容
问题标签