page.injectJs не работает с фантомом узла

0

Почему следующий код возвращает ошибку:

phantom stdout: ReferenceError: Can't find variable: $

Я вставляю jQuery на страницу и пытаюсь найти селектор:

ОБНОВЛЕННЫЙ КОД НИЖЕ (см. Комментарии)

portscanner.findAPortNotInUse(startPort, 60000, 'localhost', function(err, freeport) {
    if(err) {
        //console.log(err);
    }
    console.log(freeport);
    phantom.create({'port': freeport}, function(ph){

        return ph.createPage(function(page) {
            return page.open("http://www.targetsite.com/showpost.php?p="+posts[index].post_id, function(status) {
                console.log("opened post? ", status);

                var post_id = posts[index].post_id;
                page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',function(err, post_id){
                    console.log(err);
                    return page.evaluate(function(post_id){
                        return $('#post_message_'+post_id); //undefined
                    },function(result){
                        console.log(result);
                        return ph.exit();
                    });

                });


            });
        });
    });
});
  • 0
    Вы пытались использовать jQuery вместо $ ?
  • 0
    @dcodesmith Да, та же ошибка.
Показать ещё 5 комментариев
Теги:
phantomjs

1 ответ

1
Лучший ответ

Попробуй это

return page.evaluate(function(post_id){
    return $('#post_message_'+post_id); //undefined
},function(result){
    console.log(result);
    return ph.exit();
}, post_id);

Кстати, какой модуль узла используется для этого?

phantomjs-node оценивает wiki

  • 0
    github.com/sgentle/phantomjs-node
  • 0
    Также приводит к неопределенности и дополнительной ошибке: phantom stdout: TypeError: '19350369' не является функцией (вычисление 'cb (page.evaluate.apply (page, [fn] .concat (args)))')
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню