Я использую PhantomJS для очистки данных с определенной страницы.Я застрял в ожидании, пока пользовательский интерфейс загрузит страницу после загрузки дополнительных данных из API.Это выглядит так:
page.open(address, function() {
page.includeJs('JQuery', function(){
page.evaluate(function() {
var elements = $('.sample');
for ( i=0; i <= elements.length; i++ ) {
elements.eq(i).click();
waitForResponse()// ???
readDataFromUI();
//???
// profit!!!
}
})
});
});
Для прямой xhr нет опции, так как у меня нет ни ApiKeys, ни идентификаторов для запроса.
Страницы пользовательского интерфейса построены таким образом, что я могу развернуть только один элемент за раз и прочитать данные из него.Таким образом, нет возможности развернуть все.
Нет смысла использовать page.onResourceReceived, поскольку существует 15-30 асинхронных запросов, и я не могу их идентифицировать.Объект ответа обозначает блок, который также бесполезен.
Я также пытался прослушивать document.readyState, как в случае, если phantomjs не ожидает "полной" загрузки страницы и waitFor () функция, которой нет в средеvalu ().
Кажется, что единственная возможность здесь - это ждать, пока пользовательский интерфейс отобразит элемент, а затем перейти к следующему.Что я понятия не имею, как сделать.