Как перейти от ElementHandle к элементу DOM

#puppeteer

#кукловод

Вопрос:

Я использую node --inspect-brk для отладки моего теста puppeteer. Я пытаюсь выяснить, почему следующее не работает:

     let relationshipHeader = await page.waitForXPath(xpath);
    await relationshipHeader.hover();
  

В тестовой консоли окна Chrome $x(xpath) возвращает правильный элемент DOM. Но hover() не работает, поэтому мне интересно, для какого элемента DOM relationshipHeader предназначен.

Может ли одно из полей ElementHandle указать мне, для какого элемента DOM предназначен relationshipHeader?

Ответ №1:

_remoteObject.description похоже, это ответ. Например, с помощью этого кода:

     await page.goto("https://google.com");
    let input = await page.waitForSelector("input.gLFyf");
  

input._remoteObject.description является input.gLFyf.gsfi . В консоли инструментов разработчика Chrome на тестовой странице $("input.gLFyf.gsfi") выдает элемент DOM.