Запуск теста Puppeteer несколько раз с различными сценариями Async / Await - PullRequest
0 голосов
/ 07 июня 2019

Привет, ребята! Мне нужна помощь для сценария

  1. У меня есть массив с, скажем, объектами Google, Yahoo 100.
  2. Если Google делает X
  3. Остальное Yahoo do Y

Это легко сказать, скажем, Java Selenium, просто переберите оператор if и запустите браузер, если кукловод работает асинхронно, как я могу добиться этого с помощью Javascript? Также использую Jest.

Я попытался сделать цикл foreach асинхронным, чтобы его можно было запускать в ожидании, но очевидная проблема заключается в том, что он запускает все браузеры одновременно.

Хотел бы избежать цепочек обещаний для кукловода.

describe('Sample Test', () => {
  let browser
  let page

  beforeAll(async () => {
    browser = await puppeteer.launch()
    page = await browser.newPage()
  })

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

  it('should search on google and navigate to domain', async () => {
    jest.setTimeout(500000)
    let numOfTotalVists =  await helpers.getTotalVisits()

    numOfTotalVists.forEach(element => {
      if (element.includes('Google')) {
        browser = puppeteer.launch()
          page =browser.newPage()
          browser.close()
      } 
        console.log('no')
        browser = puppeteer.launch()
          page = browser.newPage()
          browser.close()
    })

1 Ответ

0 голосов
/ 07 июня 2019

Разобрался, легкий брэндфарт переключился на простой цикл

for (let i = 0; i < numOfTotalVists.length; i++) {
}

...