Вызовите метод и вспомогательный метод динамически - PullRequest
0 голосов
/ 18 сентября 2018

Я новичок в NodeJ и TypeScript. Я пытаюсь использовать make "puppeteer" для создания документации для моих веб-приложений.

Итак, у меня есть json с моими тестами, как вы можете видетьниже:

const puppeteer = require('puppeteer')

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
  })
  const page = await browser.newPage()

  var tests = test.scenarios
  var step = tests[0].steps[0]
  var step2 = tests[0].steps[1]
  await page.goto(tests[0].url)
  var fn = await getMethod(step2, page)

  await console.log(fn)

  if (typeof page['keyboard']['type'] === 'function') {
    await fn.call(step2.value)
  }
  //browser.close()
})()

function getMethod(step, page) {
  var methodArray = step.action.split('.')
  console.log(methodArray)
  if (methodArray.size == 1) return page[methodArray[0]]

  return page[methodArray[0]][methodArray[1]]
}



var test = {
  name: 'Login',
  description: 'Test to login as diferent users',
  scenarios: [
    {
      name: 'Login as common user',
      url:
        'myurl',
      steps: [
        {
          action: 'click',
          element: '#usuario',
          value: '',
        },
        {
          action: 'keyboard.type',
          element: '[name="usuario"]',
          value: 'joaoc',
        },
        {
          action: 'click',
          element: 'button.btn',
          value: '',
        },
      ],
    },
  ],
}

Когда у меня есть вложенные методы, такие как page.keyboard.type (arg), код обрывается.Можно ли сделать этот вызов динамически, независимо от того, сколько у меня вложенных файлов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...