QuerySelector не удалось выполнить на элементе или не удалось найти соответствующий селектор - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь получить URL каждого изображения в 'figure class> img src'.Веб-страница содержит список списков, и каждый список имеет изображение.

Проблема заключается в том, что класс URL-адреса изображения переключается между 'class = "lazyloaded"' (* обратите внимание на пробел перед именем) и "class =" is-Hig-height-lazyloaded "".

Я думаю о запросе в виде строк 'lazyloaded' или 'is-Higher-height.lazyloaded'.Ничего не работает.

Странно, я проверил на песочнице, и он нашел оба предмета.Ссылка ниже.

http://pagedemos.com/awr78g4nfehh/3

Цените любую помощь!Благодарю.


структура html

<div class="items-box-content">

   <!-- each section represents a single listing --> 
   <section class="items-box">
      <a href="http:url">

         <figure class="items-box-photo">
            <img data-src="imageurl.jpg" class=" lazyloaded" src="imageurl.jpg">

            <!-- sometimes class=" is-higher-height lazyloaded" -->
         </figure>

      </a>
   </section>

   <!--  many other listings --> 
   <section></section>...

</div>

Основные строки кукловода


await page.evaluate(() => { 
  document.querySelector('section[class*="items-box"]');
});

let elements = await page.$$('section[class*="items-box"]');

let listImg    = await element.$eval('img.lazyloaded', img => img.getAttribute('src'));

Попробовал ниже для $ eval, ни один не работает


//CSS versions
img.lazyloaded //captures 1 listing on debugger;
.lazyloaded                 
is-higher-height.lazyloaded //doesnt capture even 1
.is-higher-height.lazyloaded //doesnt capture even 1
img.lazyloaded.is-higher-height.lazyloaded //multiple classes

//XPath versions
'img[class*="lazyloaded"]'   // includes name 
'img.[class$="lazyloaded"]'  // ends with name 
'img.[class^="lazyloaded"]'  // starts with name 
'//img[class^="lazyloaded"]' //not valid selector

...