alexandrknyazev13071995
@alexandrknyazev13071995

Как встраивать асинхронный код в страницу с помощью PhantomJs?

С помощью page.open() открываю страницу по адресу, затем нужно встроить код, который:
1) будет нажимать на кнопку.
2) Ждать пока подгрузятся новые DOM-элементы сайта(ну или хотя бы по ка пройдет заданное кол-во секунд)
3) Затем уже работать с этими элементами.
Встраиваю код на страницу с помощью page.evaluate
Вот примерный мой код:
page.open(url, function(status) {
  
  var elements_array = page.evaluate(function() {
    1)находим элемент кнопки()
    2)генерируем событие нажатия()
    3)ждем подгрузки()
    4)собираем нужную информацию  с элементов по селекторам()
    return elements_array;
  });
console.log(elements_array);
});

Я выполняю пункты 1 и 2 из функции page.evaluate, но при попытке выполнить асинхронную операцию(пункт 3) console.log(elements_array) выводит null, так какфункция еще не выполнена.
Как решить проблему?
  • Вопрос задан
  • 257 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы