кукловод щелкает элемент внутри элемента - PullRequest
0 голосов
/ 13 июня 2019

Я удаляю несколько div с сайта и затем фильтрую их, когда div соответствует моим критериям - я хочу нажать на кнопку внутри него.

Вот мой код:

const matchelems = async (elements, text) => {
  try {

    var matchings = []

    for (var i = 0; i < elements.length; i++) {
      let valueHandle = await elements[i].getProperty('innerText');
      let linkText = await valueHandle.jsonValue();

      if (linkText.indexOf(text) > -1) {
        matchings.push(elements[i])
      }

    }
    return matchings

  } catch (e) {
    console.log(e)
  }
}

    const elements = await page.$$(`div.foo`)
    const filtered = await matchelems(elements, 'Find that')

    console.log(`Filtered elements: ${filtered.length}`)

    // now click the button in first div

    const nestedButton = await filtered[0].$(`button.submit`);
    console.log(nestedButton)
    console.log(typeof(nestedButton))
    await nestedButton.click()

И вывод консоли:

Filtered elements: 335
null
object
TypeError: Cannot read property 'click' of null
    at dotask (C:\Users\Lenovo\Desktop\app\runtask.js:62:16)
    at processTicksAndRejections (internal/process/next_tick.js:81:5)
...