Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: приручить phantomJS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
DlTA
Отправлено: 30 Октября, 2014 - 01:53:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




задача пересадить на консоль некоторых ботов (а то на хромоботах памяти нажирают много)

но не как не могу понять как можно оперировать элементами DOM

простенький пример, пытаемся яндексу передать искомое слово

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var url = "http://ya.ru/";
  3. page = require("webpage").create()
  4. page.viewportSize = {width: 800,height: 600};
  5.  
  6. var nowDate = new Date;
  7. page.open(url, function (){
  8.         console.log("page.onLoadFinished");
  9.  
  10.         page.render('img'+nowDate.getTime()+'.png');
  11.  
  12.         page.includeJs('jquery.js', function(){
  13.                 page.evaluate(function() {
  14.                         $('#text').val(123321);
  15.                         page.render('img.png');
  16.                 });
  17.         })
  18.         phantom.exit();
  19. });
  20.  


но какогото не рендерится второе изображение,
попытки кинуть в консоль чего либо из функции "page.evaluate(function() {"
тоже ничего не выдает
что не так?
(Добавление)
и чем все таки отличаются page.injectJs(url, callback) и page.includeJs(url, callback) ??


в моем случае есть user.js которые я хотел бы подкинуть для выполнения нужных манипуляций (получения данных со страницы, отправки их во вне, управление страницей)

(Отредактировано автором: 30 Октября, 2014 - 02:13:11)

 
 Top
and_07
Отправлено: 30 Октября, 2014 - 08:12:01
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




 
 Top
DlTA
Отправлено: 30 Октября, 2014 - 09:24:05
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




and_07 пишет:
попробуй http://www[dot]nightmarejs[dot]org/
а зачем не эта надстройкка если я даже азов не толком не понимаю
 
 Top
and_07
Отправлено: 30 Октября, 2014 - 09:36:17
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




наверно неправильно понял
если phantomJS эт принципиально
чтож в манах все описано есть даже примеры
посмотрите на GitHub там тоже примеров хватает
 
 Top
DlTA
Отправлено: 30 Октября, 2014 - 10:18:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




and_07 пишет:
посмотрите на GitHub там тоже примеров хватает

я ж оттуда и пришел
и гит хаб, и их оф сайт
но с доками по указанным методам и них не сильно
DlTA пишет:
и чем все таки отличаются page.injectJs(url, callback) и page.includeJs(url, callback) ??
 
 Top
and_07
Отправлено: 30 Октября, 2014 - 10:33:12
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




как то так наверно

but essentially, page.injectJs pauses execution until the script is loaded, while page.includeJs loads the script like any other
 
 Top
DlTA
Отправлено: 30 Октября, 2014 - 10:35:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




ну вот если еще развернуто и по русски будет вообщешик
а то
гугтранс пишет:
но, по сути, page.injectJs приостанавливает выполнение до скрипт не загружен, в то время как page.includeJs загружает сценарий, как любой другой

ну как то вообще не ахти
 
 Top
and_07
Отправлено: 30 Октября, 2014 - 10:39:14
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




+ The injectJs() method is similar to includeJs(). The difference is that the injected script file does not need to be accessible from the page object. This allows you to, for example, inject scripts from your local file system.
 
 Top
DlTA
Отправлено: 30 Октября, 2014 - 10:43:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




тоесть иными словами
includeJs( добавляет даныне в пространство имен доступное из самой страницы
а injectJs( добавляет в отдельное пространство имен и дает возможность им манипулировать

но при этом все манипуляции должны проходить в evaluate()
так?
 
 Top
and_07
Отправлено: 30 Октября, 2014 - 10:56:44
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB