Выбор Div внутри Nav - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь автоматизировать некоторые функции в Chrome, используя Puppeteer и Chromium. Я могу войти в систему, выбрать основной элемент навигации и появится под-навигационное меню. В настоящее время я играю в консоли, чтобы найти правильный селектор для перехода в Puppeteer, однако у меня возникли трудности.

HTML ниже:

<div id="popupTaskMenu" class="launcher...">
  <div -not important to task></div>
  <nav class="task_launcher_item_heading">
    <div task-item="0" class="task_launcher_item_click">Text</div>
    <div task-item="1" class="task_launcher_item">Text</div>
  </nav>
<div>

С помощью консоли Chrome я могу немного приблизиться к тому, чтобы сделать элементы <nav> доступными, используя document.getElementsByClassName("task_launcher_item_heading")[0].childNodes[0].innerText, который будет возвращать innerText элемента, но при использовании метода .click() возвращается неопределенный.

Любые идеи обязательно помогут.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Хорошо, однажды я стану умным человеком ... моя проблема была в том, что я использовал #popupTaskMenu > nav > div.nth-child(2), когда это должно было быть #popupTaskMenu > nav > div:nth-child(2)

Я должен был использовать КОЛОНУ, а непериод !!!!2 часа моей жизни люди!

0 голосов
/ 22 мая 2019

Похоже, вы просто пытаетесь нацелиться на этого парня и заставить его что-то сделать.

 <div task-item="0" class="task_launcher_item_click">Text</div>

если это так, можете ли вы вместо этого использовать функцию const Nav = document.getElementById(); await Nav.click(); и присвоить ей собственный идентификатор, сохраняя при этом класс task_launcher_item_click?

Как только вы нажмете на этот конкретный элемент, вы можете использовать функцию обещания https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#frameclickselector-options

const [response] = await Promise.all([
  page.waitForNavigation(waitOptions),
  frame.click(selector, clickOptions),
]);  

или селектор атрибута https://drafts.csswg.org/selectors-4/#attribute-selectors

const element = await page.$('[href="http://www.iana.org/domains/example"]');
    await element.click();
  } catch (err) {
    console.error(err);
  }
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...