#javascript #jquery #node.js #phantomjs
#javascript #jquery #node.js #phantomjs
Вопрос:
console.log(_killer) выдает undefined.
_killer = _pageInstance.evaluate(function() {
var storres = [];
jQuery('.comment-container#pull-request-activity').children().each(
function(index, value) {
if (
jQuery(value)[0].className !== 'activity-item diff-comment-activity'
) {
jQuery(value)[0].remove();
} else {
storres.push(value);
jQuery(value)[0].remove();
}
});
return storres;
});
DOM
<li class="activity-item diff-comment-activity" data-activityid="178071"><div></div></li>
<li class="activity-item diff-comment-activity" data-activityid="178070"><div></div></li>
<li class="activity-item diff-comment-activity" data-activityid="178069"><div></div></li>
выше приведен повторяющийся элемент, и я хочу извлечь его из DOM.
Я использую версию 0.2.5 узла-фантома
Подобные вопросы доступны на форуме, но ни один из них не помогает. Я использую node bridge
для phantomjs
.
Любая помощь?
Комментарии:
1. Какой именно узел-фантомный мост вы используете? (пожалуйста, предоставьте ссылку) Кроме того, есть ли у нас способ взглянуть на целевую страницу? Если нет, пожалуйста, предоставьте соответствующий образец DOM для изучения.
2. DOM я не могу предоставить, но если я запущу эту часть в своей консоли.. Это работает так, как и ожидалось.. Он извлекает соответствующие элементы и сохраняет их в storres.
3. Моя цель — просто извлечь соответствующие элементы, сохранить их в массиве и вернуть массив во «внешний мир»
4. Если вы посмотрите на документацию используемого вами моста (их несколько), вы должны увидеть, что
evaluate
функция принимает как минимум два аргумента: 1. функция, подлежащая оценке в контексте страницы, и 2. функция обратного вызова, когда результат доступен. Обычно ничего не возвращается.5. Да .. Пробовал и это.. Добавив функцию в качестве второго аргумента, а затем присвоив результат из результата первого аргумента глобальной переменной.. Но не повезло