powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CEF4Delphi в потоке с внешней формой
25 сообщений из 139, страница 1 из 6
CEF4Delphi в потоке с внешней формой
    #39840878
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буду признателен, тем кто работает с CEF3/CEF4 для Delphi за помощь.

Некоторые сайты используют CloudFlare, поэтому простым IdHTTP не обойтись - нужен более менее полноценный и современный браузер с поддержкой js/ajax. А то встроенный древний IE подвисает 21931836 .

Как я уже давно понял, любому браузеру нужна визуальная форма для работы и в потоке без видимой на экране формы он работать не будет.

Поэтому появилась идея вынести загрузку страницы из потока на форму с использованием synchronize. Может быть будет правильнее вместо доступа к форме и браузеру использовать не synchronize, а какие-то другие методы "общения"?
Или вообще реализовать идею без потока. Может хромиум умеет "нажимать" на ссылку как это делает пользователь мышкой?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39840889
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое универсальное решение - отдельный браузер, запущенный в режиме WebDriver. Софт для внутренних нужд или на распространение?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39840891
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На распространиние, правда в "единичном" экземпляре :)


Василий 2браузер, запущенный в режиме WebDriver
это как? что для этого надо?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39840898
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,
В CEF4 можно вызывать любой javascript код, делать инъекции. Загрузил код, вызвал нужные функции.
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39840922
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, читал краткую инфу.
но мне всего-то нужно "пробежаться" по страничкам и получить InnerHTML.
InnerHTML уже понял как получать.
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39840960
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Василий 2браузер, запущенный в режиме WebDriver
это как? что для этого надо?
Браузер, WebDriver-драйвер (гы) и обвязка REST интерфейса.
Для Хрома, например, http://chromedriver.chromium.org/downloads
Но если просто нужно тыкнуть мышкой, это оверхед. Действительно попробуй CEF, а если нужна параллельность и с потоками не заладится - можно организовать субпроцессы вместо потоков
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39841351
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто встречается какой-то "Visitor". Что это такое?

function CookieVisitorProc
CookieVisitor
TCefFastCookieVisitor
OnNavigationVisitorResultAvailable
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39841352
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть у кого простой пример работы с куками?
Как задать папку хранения, например?

Т.к. то ,что есть здесь http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html
уже устарело
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39841370
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Как задать папку хранения, например?

Код: pascal
1.
GlobalCEFApp.Cache := 


Теперь и кэш, и куки хранятся в общей папке
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39841493
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало того, все настройки нужно выполнять до строки
GlobalCEFApp.StartMainProcess;

см. пример в файле SimpleBrowser2.dpr
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851555
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ппц :( это сложнее, чем я ожидал

+ 10 в карму, есть поможете понять, как после загрузки страницы найти определённый текст и ссылку, а потом и "щёлкнуть" по ней
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851597
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11ппц :( это сложнее, чем я ожидал

+ 10 в карму, есть поможете понять, как после загрузки страницы найти определённый текст и ссылку, а потом и "щёлкнуть" по ней

1. исходный текст не получается?
2. в тексте не получается найти нужное?
3. в найденном не получается извлечь href?
4. не получается вызвать загрузку по указанному url?

на каком пункте непонимание?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851616
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть примеры процедур SimpleNodeSearch и SimpleDOMIteration в демках. Разбираю их.

Как я понял из примеров и комментариев, нужно использовать OnProcessMessageReceived.
да, я так и делаю:
GlobalCEFApp.OnProcessMessageReceived := GlobalCEFApp_OnProcessMessageReceived;

автор https://www.briskbard.com/forum/viewtopic.php?f=8&t=861&p=3993#p3840 you will need to send messages to the browser process

unit uDOMVisitor// To send messages from the render process you must use the browser.SendProcessMessage
// procedure with a PID_BROWSER parameter. The browser process receives those messages in
// the TChromium.OnProcessMessageReceived event.

Далее. В качестве параметра в SimpleNodeSearch и в SimpleDOMIteration нужно передать aDocument: ICefDomDocument, т.к. обе процедуры принимают его на вход.
Вот тут и начинаются танцы с бубном.
Событие GlobalCEFApp_OnProcessMessageReceived получает и обрабатывает сообщения.
Я знаю, как послать сообщение:
Код: pascal
1.
browser.SendProcessMessage()


Теперь остаётся понять: откуда его правильно посылать?

здесь автор меня запутал
https://www.briskbard.com/forum/viewtopic.php?f=8&t=861&p=3993
то пишет, что нужно:
Код: pascal
1.
frame.SendProcessMessage(PID_BROWSER, msg);


а потом, как я вроде бы понял, это неправильно.

После окончательной загрузки страницы ведь это нужно делать? В каком событии?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851656
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11и в потоке без видимой на экране формы он работать не будет.Что мешает создать оконный цикл в нужном потоке?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851674
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, отсутствие нужных знаний и навыков
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851687
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Разметка произвольная? Может просто тупо внедрить на страницу свой JS и уже с его помощью искать и "кликать" по ссылкам?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851698
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, я не знаю.
Я пока ещё даже искать не научился.
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851727
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне казалось бы какой-то пример работы CEF без визуального рендера.
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851730
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эммм, что?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851776
Фотография Saller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Может быть, я не знаю.
Я пока ещё даже искать не научился.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var links = document.querySelectorAll('a.forumLink');
if (links) {
    for (var x = 0; x <= links.length; x++) {
        if (links[x]) {
            if (links[x].innerHTML.trim().indexOf('Delphi') != -1) {
                links[x].click();               
            }
        }
    }
}
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851778
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это точно для cef4delphi?
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851781
Фотография Saller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Да. Проверял на странице данной темы. Или давай ссылку на сайт, на котором нужно жмякнуть ссылку.
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851823
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SallerИли давай ссылку на сайт, на котором нужно жмякнуть ссылку.
Жмакай на сиквел.ру
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851824
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так это ж не дельфи-код
...
Рейтинг: 0 / 0
CEF4Delphi в потоке с внешней формой
    #39851825
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SallerX11,

Да. Проверял на странице данной темы. Или давай ссылку на сайт, на котором нужно жмякнуть ссылку.
doska.plus
...
Рейтинг: 0 / 0
25 сообщений из 139, страница 1 из 6
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CEF4Delphi в потоке с внешней формой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]