CEF4Delphi в потоке с внешней формой

X11
Дата: 24.07.2019 11:50:36
Буду признателен, тем кто работает с CEF3/CEF4 для Delphi за помощь.

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

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

Поэтому появилась идея вынести загрузку страницы из потока на форму с использованием synchronize. Может быть будет правильнее вместо доступа к форме и браузеру использовать не synchronize, а какие-то другие методы "общения"?
Или вообще реализовать идею без потока. Может хромиум умеет "нажимать" на ссылку как это делает пользователь мышкой?
Василий 2
Дата: 24.07.2019 12:03:34
Самое универсальное решение - отдельный браузер, запущенный в режиме WebDriver. Софт для внутренних нужд или на распространение?
X11
Дата: 24.07.2019 12:05:49
На распространиние, правда в "единичном" экземпляре :)


Василий 2
браузер, запущенный в режиме WebDriver

это как? что для этого надо?
ziv-2014
Дата: 24.07.2019 12:13:21
X11,
В CEF4 можно вызывать любой javascript код, делать инъекции. Загрузил код, вызвал нужные функции.
X11
Дата: 24.07.2019 12:58:39
Да, читал краткую инфу.
но мне всего-то нужно "пробежаться" по страничкам и получить InnerHTML.
InnerHTML уже понял как получать.
Василий 2
Дата: 24.07.2019 14:15:29
X11
Василий 2
браузер, запущенный в режиме WebDriver

это как? что для этого надо?

Браузер, WebDriver-драйвер (гы) и обвязка REST интерфейса.
Для Хрома, например, http://chromedriver.chromium.org/downloads
Но если просто нужно тыкнуть мышкой, это оверхед. Действительно попробуй CEF, а если нужна параллельность и с потоками не заладится - можно организовать субпроцессы вместо потоков
X11
Дата: 25.07.2019 13:00:05
Часто встречается какой-то "Visitor". Что это такое?

function CookieVisitorProc
CookieVisitor
TCefFastCookieVisitor
OnNavigationVisitorResultAvailable
X11
Дата: 25.07.2019 13:01:29
А есть у кого простой пример работы с куками?
Как задать папку хранения, например?

Т.к. то ,что есть здесь http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html
уже устарело
X11
Дата: 25.07.2019 13:25:26
X11
Как задать папку хранения, например?


GlobalCEFApp.Cache := 

Теперь и кэш, и куки хранятся в общей папке
X11
Дата: 25.07.2019 16:13:45
Мало того, все настройки нужно выполнять до строки
GlobalCEFApp.StartMainProcess;

см. пример в файле SimpleBrowser2.dpr