Нажмите «Кукловод», не работающий внутри тега ul

#javascript #node.js #reactjs #web #puppeteer

Вопрос:

Ниже приведена часть html-кода веб-страницы, которую я очищаю с помощью puppeteer. Идентификаторы начинаются с цифр.

 <div class="inner-menu">
   <ul class="module" style="float: left">
      <li id="0" class="moduleclass"><a class="active" href="/eu/alt/dashboard.htm">Home</a></li>
      <li id="4" class="moduleclass"><a class="" href="/eu/stu/studentBasicProfile.htm">Student</a></li>
      <li id="6" class="moduleclass"><a class="" href="/eu/exm/viewStudentExamDefinition.htm">Exam</a></li>

      <li id="7" class="moduleclass">
         <a class="" href="/eu/res/semesterGradeCardListing.htm">Result</a>
      </li>

   </ul>
</div>
 

Мне нужно нажать на li с идентификатором 7. Я попытался использовать код

 await page.waitForSelector("#\37 ");
await page.click("#\37 ");
 

Но это не работает.

Комментарии:

1. В чем заключается идея "#\37 " ? Почему нет "#7" ?

Ответ №1:

Идентификаторы, начинающиеся с цифр, недопустимы, и такие селекторы выдают ошибки. Но вы можете попробовать XPath:

 const element = await page.waitForXPath('//*[@id="7"]');
await element.click();