WBApp CEF

Chrome Logo

CEF (Chromium Embedded Framework, Chrome)

Современный движок браузера с поддержкой выполнения пользовательских Javascript.

Раздел форума WBAppCEF

Примечание: Для работы CEF Требуется его установить. Инструкция по установке.

Выбор движка браузера для WBApp осуществляется в WBApp Launcher (ctrl+w из главного окна программы)

Content Downloader


Содержание

Ожидание загрузки WEB-страницы

Использование менеджера Javascript

Отладка Javascript

Автоматическая смена UserAgent (из списка в файле)

Использование прокси-серверов

Как получить XPath нужного DOM-элемента WEB-страницы и выполнить по нему поиск элемента, например, для эмуляции клика по нему

Как выполнять действия над элементами WEB-страницы (клик, вставка текста и прочее)

Использование GETHTML с заданием границ парсинга (как в Content Downloader)

Эмуляция нажатий кнопок клавиатуры

Эмуляция кликов мышью

Автоматическая обработка файловых диалогов/Автоматическая вставка имен файлов в файловые диалоги

Передача HTTP заголовков в Content Downloader/Автоматическая авторизация методом передачи cookie и HTTP заголовков из WBAppCEF в Content Downloader

Передача Cookie из Content Downloader/Установка Cookie в проекте WBAppCEF

Примеры решения задач


Ожидание загрузки WEB-страницы

Как при парсинге дожидаться готовности загрузки WEB-страниц
Content Downloader

Примечание: Не всегда скрипты на WEB-странице готовы к работе сразу после загрузки основного фрейма. Иногда требуется разместить дополнительное событие ожидание [WAIT] после [WAITFORMAINFRAMELOAD]



Использование менеджера Javascript

Менеджер Javascript
Content Downloader


Также учтите, что в менеджере Javascript можно использовать оператор списка событий [INT1] и вставлять передаваемые значения из Content Downloader (для использования переданных значений в скриптах)

Content Downloader

Подробнее о передаче текстовых данных из Content Downloader можно почитать тут.



Отладка Javascript

Отладка Javascript в Firefox
Нажмите shift+ctrl+k в Firefox


Автоматическая смена UserAgent (из списка в файле)

Подключение текстового файла со списком UserAgent
WBAppCEF


Использование прокси-серверов

Прокси
WBAppCEF

WBAppCEF

Для режима редактирования проекта WBAppCEF прокси устанавливается в этом окне (смотрите скриншот выше).

При парсинге прокси будут браться из списка прокси-серверов Content Downloader.



Как получить XPath нужного DOM-элемента WEB-страницы и выполнить по нему поиск элемента, например, для эмуляции клика по нему


Получение XPath из Firefox
Получить XPath в Firefox


Получить XPath в Firefox
Получение XPath в WBAppCEF
WBAppCEF
Полученный XPath элемента WEB-страницы будет выглядеть примерно так

1
/html/body/div[3]/div[1]/div[3]/div[3]/div[2]/div[1]/div[1]/div/div[2]/div/div/a

Зная XPath элемента WEB-страницы, в WBAppCEF с помощью Javascript можно будет выполнять действия с этим элементом, например, делать клик по нему.

1
2
3
4
5
var bxpath = document.evaluate ('/html/body/div[3]/div[1]/div[3]/div[3]/div[2]/div[1]/div[1]/div/div[2]/div/div/a', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
DOMNODE = bxpath.singleNodeValue;
 
///Если надо выполнить клик:
DOMNODE.click();



Как выполнять действия над элементами WEB-страницы (клик, вставка текста и прочее)


Эмуляция клика, вставки текста и прочее
Эмуляция действий в WBAppCEF выполняется с помощью Javascript. Сначала вы находите элемент WEB страницы (DOMNODE), затем выполняете над ним нужные действия.

Примечание: Поиск элемента по XPath на некоторых сайтах не всегда корректно работает, так как структура различных WEB-страниц сайта разная. В таких случаях можно искать элемент по его атрибутам.

WBAppCEF

WBAppCEF

Также обратите внимание и на другие события, например на эмуляцию прокрутки WEB-страницы вниз.

WBAppCEF



Использование GETHTML с заданием границ парсинга (как в Content Downloader)


Взятие нужной части кода WEB-страницы
Ниже избавление от рутины.

В WBAppCEF копируем код WEB-страницы таким способом

WBAppCEF

Переходим в Content Downloader, открываем инструмент задания границ парсинга, кликаем в поле с кодом WEB-документа (для перевода фокуса в него) и нажимаем ctrl+v для вставки кода из буфера.

Далее задаете границы парсинга обычным способом. После задания границ парсинга, копируем событие [GETHTML] из контекстного меню, как показано на скриншоте ниже

Content Downloader

В итоге получаем готовое событие для вставки в WBAppCEF

1
[GETHTML]:[1]2|||[3]4


Эмуляция нажатий кнопок клавиатуры


Эмулируем
WBAppCEF

Для эмуляции нажатий кнопок клавиатуры используйте событие[SENDKEYPRESS]

1
[SENDKEYPRESS]:код клавиши

Например, для нажатия стрелки вверх используйте код клавиши 38

1
[SENDKEYPRESS]:38

Для эмуляции сочетания ctr + клавиша добавьте к коду клавиши оператор {CTRL}

1
[SENDKEYPRESS]:38{CTRL}

SPACEBAR — 32
END key — 35
HOME key — 36
LEFT ARROW key — 37
UP ARROW key — 38
RIGHT ARROW key — 39
DOWN ARROW key — 40
Таблица кодов клавиш

PS: Не забывайте вставлять [WAIT]:100 после события [SENDKEYPRESS]



Эмуляция кликов мышью


Эмулируем
ВАЖНО: Клики по элементу WEB-страницы нужно производить с помощью DOMNODE.click();
Способ эмуляции кликов мышью (изложенный ниже) нужно применять в случае, если DOMNODE.click(); применить не удается.

Данный вид эмуляции имитирует нажатие левой кнопки мыши и применяется в случаях, когда DOMNODE.click(); не срабатывает или не подходит.

Для проверки эмуляции клика мышью наведите курсор над нужным объектом WEB-страницы (DOMNODE) и нажмите f5. После этого в список событий добавится элемент имитации клика [MOUSECLICK]:X|Y, который можно запускать с помощью двойного клика по нему.

WBAppCEF

WBAppCEF

Далее составляем список событий для получения координат нужного DOMNODE и имитации клика мышью по нужному DOMNODE

WBAppCEF

WBAppCEF



Автоматическая обработка файловых диалогов/Автоматическая вставка имен файлов в файловые диалоги


Автоматическая обработка окон выбора файлов
Допустим, нужно автоматизировать Upload файла с диска на сайте. Например, вы в админ панели добавляете товар или статью и нужно к ней загрузить на сервер картинки с диска. При клике на кнопку выбора файлов вы увидите файловый диалог (в котором нужно выбрать файл). Для автоматизации вставки имени файла (без показа файлового диалога) используются события: [RESETDIALOGFILENAME] (сброс значения имени файла в памяти), [SETDIALOGFILENAME] (установка значения имени файла для появляющихся файловых диалогов).

Важно понимать, что когда значение имени файла в памяти не установлено, окна выбора файлов будут появляться в обычном режиме. Если же установить значение имени файла для файловых диалогов с помощью события [SETDIALOGFILENAME]:C:\Files\Sample.jpg, то во все последующие файловые диалоги будет подставляться C:\Files\Sample.jpg без отображения диалога выбора файла!

При повторном вызове [SETDIALOGFILENAME], имя файла в памяти будет перезаписываться на новое.

Имена файлов можно прописывать в списке событий в виде:

1
2
3
4
5
6
7
[SETDIALOGFILENAME]:путь к файлу на диске
 
[SETDIALOGFILENAME]:C:\Files\Sample.jpg
 
[SETDIALOGFILENAME]:[CDDATA:1]
 
[SETDIALOGFILENAME]:[PARAM]

Где [CDDATA:n] и [PARAM] — передаваемые из Content Downloader данные.

Инструкция по передаче данных из Content Downloader в WBApp.

WBAppCEF

WBAppCEF

WBAppCEF



Передача HTTP заголовков в Content Downloader/Автоматическая авторизация методом передачи cookie и HTTP заголовков из WBAppCEF в Content Downloader


Передаем заголовки



События для получения HTTP заголовков запросов WBAppCEF с целью передачи их в Content Downloader

WBAppCEF


WBAppCEF


WBAppCEF


В видео ниже показан принцип работы событий: [GETREQUESTHEADERS] и [GETREQUESTHEADERS_APPLY] (для получения HTTP заголовков из WBAppCEF)




Выполнение автоматической авторизации на сайте методом передачи HTTP заголовков из WBAppCEF в Content Downloader

Content Downloader


Content Downloader


Content Downloader


Content Downloader


Content Downloader


В видео ниже показан пример получения HTTP заголовка authorization: Bearer для автоматической авторизации на сайте



Передача Cookie из Content Downloader/Установка Cookie в проекте WBAppCEF


Устанавливаем Cookie
В режиме редактирования проекта WBAppCEF Cookie устанавливаются, как показано на скриншоте ниже.

WBAppCEF

В режиме парсинга с использованием WBAppCEF Cookie будут браться из Content Downloader из окна ctrl+h!



Примеры решения задач


Прокликивание страниц выдачи сайтов
Видео 1: Прокликивание страниц выдачи сайта с поиском элемента DOM (для перехода на следующую страницу выдачи) в Javascript по атрибуту innerHTML

— Имитация кликов по элементам WEB-страницы с помощью Javascript

— Ожидание готовности загрузки WEB-страницы осуществляется с помощью события [WAITFORMAINFRAMELOAD]

— Проверка, был клик по кнопке перехода на следующую страницу выдачи или нет, осуществляется с помощью события [CHECKJSMESSAGE]



Видео 2: Прокликивание страниц выдачи сайта с поиском элемента DOM (для перехода на следующую страницу выдачи) в Javascript по атрибуту innerHTML (в случае, когда кнопка перехода на следующую страницу выдачи не пропадает при достижении последней страницы выдачи)

— Имитация кликов по элементам WEB-страницы с помощью Javascript

— Проверка, был клик по кнопке перехода на следующую страницу выдачи или нет, осуществляется с помощью события [IFAQUERYINITIATED]

Автоматическая прокрутка WEB-страницы вниз (для инициализации подгрузки данных)
Событие [SCROLLDOWNTHENRETURN] решает вопрос =)

Автоматическая прокрутка списков WEB-страницы вниз (для инициализации подгрузки данных)
Выполняется с помощью команды Javascript DOMNODE.scrollIntoView();

Выбор элементов выпадающих списков
Помещаем фокус в нужный элемент с помощью Javascript и эмулируем нажатие стрелки вниз для выбора элементов списка

Прокликивание сразу нескольких выпадающих списков опций товаров
Прокликивание цветов товаров в Яндекс маркете

В видео показано:

— способ поиска DOMNODE сразу по нескольким атрибутам (параметрам)

— Создание цикла с помощью события [IFAQUERYINITIATED] и [GOTO]

— Отображение всех атрибутов DOMNODE

Прокликивание атрибутов (размеров) товаров

В видео показано:

— способ поиска определенного по счету DOMNODE

— Создание цикла с помощью события [CHECKJSMESSAGE] и [GOTO]

— Отображение всех атрибутов DOMNODE



1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 6, средний балл: 5,00)
Загрузка...

Далее на WEB-странице вставили «пробел», чтобы навигация по содержанию работала корректно (не упиралась в низ WEB-страницы при скроллинге).









































Автор: admin, 4 июля 2019
Рубрики: Новости

Последние статьи

css.php