Я пытаюсь сканировать веб-сайт, который загружает большую часть его содержимого различными
Вызовы JavaScript (которые занимают больше всего времени - это загрузка XHR).
здесь есть ссылка на изображение активности страницы
Я использую неявное ожидание, чтобы дождаться загрузки всей страницы, но когда я ищу элемент (var element = driver.FindElement (By.Id ("product-item-wrapper"));), он генерирует исключение noSuchElementException.
Я попытался скопировать driver.PageSource и открыть его содержимое в текстовом редакторе, и я нашел HTML, который пытаюсь получить, но ChromeDriver, кажется, его не видит.
У меня была такая же проблема с другими элементами на странице, но я решил ее, добавив ImplicitWait, чтобы дождаться полной загрузки страницы.
Элементы, которые я пытаюсь найти, это список <div id="product-item-wrapper">
внутри <div class="tab-pane cc-list-tab active" id="product-grid" aria-live="polite">
(обратите внимание, что я анализирую driver.PageSource для HtmlDocument для работы с HtmlAgilityPack)
мой код для получения элемента
var productBoxNodesItemWrapper = htmlDoc.DocumentNode.SelectNodes("//div[@id='product-item-wrapper']");
но я тоже пытался
var productBoxNodes = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='product-list']");
чтобы найти весь элемент списка
Я хочу найти список обёрток товара, но он выдает исключение
когда я пытаюсь найти весь элемент списка товаров, productBoxNodes содержит:
<div class="sr-only" data-bind="widgetLocaleText: 'listViewLoadedText'" role="alert">Some text not important</div>
<div data-bind="foreach: currentProducts"></div>
и ничего внутри.