|
|
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Буду признателен, тем кто работает с CEF3/CEF4 для Delphi за помощь. Некоторые сайты используют CloudFlare, поэтому простым IdHTTP не обойтись - нужен более менее полноценный и современный браузер с поддержкой js/ajax. А то встроенный древний IE подвисает 21931836 . Как я уже давно понял, любому браузеру нужна визуальная форма для работы и в потоке без видимой на экране формы он работать не будет. Поэтому появилась идея вынести загрузку страницы из потока на форму с использованием synchronize. Может быть будет правильнее вместо доступа к форме и браузеру использовать не synchronize, а какие-то другие методы "общения"? Или вообще реализовать идею без потока. Может хромиум умеет "нажимать" на ссылку как это делает пользователь мышкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 11:50 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Самое универсальное решение - отдельный браузер, запущенный в режиме WebDriver. Софт для внутренних нужд или на распространение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 12:03 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
На распространиние, правда в "единичном" экземпляре :) Василий 2браузер, запущенный в режиме WebDriver это как? что для этого надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 12:05 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11, В CEF4 можно вызывать любой javascript код, делать инъекции. Загрузил код, вызвал нужные функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 12:13 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Да, читал краткую инфу. но мне всего-то нужно "пробежаться" по страничкам и получить InnerHTML. InnerHTML уже понял как получать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 12:58 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11Василий 2браузер, запущенный в режиме WebDriver это как? что для этого надо? Браузер, WebDriver-драйвер (гы) и обвязка REST интерфейса. Для Хрома, например, http://chromedriver.chromium.org/downloads Но если просто нужно тыкнуть мышкой, это оверхед. Действительно попробуй CEF, а если нужна параллельность и с потоками не заладится - можно организовать субпроцессы вместо потоков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2019, 14:15 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Часто встречается какой-то "Visitor". Что это такое? function CookieVisitorProc CookieVisitor TCefFastCookieVisitor OnNavigationVisitorResultAvailable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2019, 13:00 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
А есть у кого простой пример работы с куками? Как задать папку хранения, например? Т.к. то ,что есть здесь http://parsing-and-i.blogspot.com/2013/01/tchromium-cookies-in-delphi.html уже устарело ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2019, 13:01 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11Как задать папку хранения, например? Код: pascal 1. Теперь и кэш, и куки хранятся в общей папке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2019, 13:25 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Мало того, все настройки нужно выполнять до строки GlobalCEFApp.StartMainProcess; см. пример в файле SimpleBrowser2.dpr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2019, 16:13 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
ппц :( это сложнее, чем я ожидал + 10 в карму, есть поможете понять, как после загрузки страницы найти определённый текст и ссылку, а потом и "щёлкнуть" по ней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 12:58 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11ппц :( это сложнее, чем я ожидал + 10 в карму, есть поможете понять, как после загрузки страницы найти определённый текст и ссылку, а потом и "щёлкнуть" по ней 1. исходный текст не получается? 2. в тексте не получается найти нужное? 3. в найденном не получается извлечь href? 4. не получается вызвать загрузку по указанному url? на каком пункте непонимание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 13:54 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Есть примеры процедур 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. Теперь остаётся понять: откуда его правильно посылать? здесь автор меня запутал https://www.briskbard.com/forum/viewtopic.php?f=8&t=861&p=3993 то пишет, что нужно: Код: pascal 1. а потом, как я вроде бы понял, это неправильно. После окончательной загрузки страницы ведь это нужно делать? В каком событии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 14:13 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11и в потоке без видимой на экране формы он работать не будет.Что мешает создать оконный цикл в нужном потоке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 15:03 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 15:19 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11, Разметка произвольная? Может просто тупо внедрить на страницу свой JS и уже с его помощью искать и "кликать" по ссылкам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 15:37 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Может быть, я не знаю. Я пока ещё даже искать не научился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 15:50 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Мне казалось бы какой-то пример работы CEF без визуального рендера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 16:18 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
эммм, что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 16:19 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11Может быть, я не знаю. Я пока ещё даже искать не научился. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 17:06 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
это точно для cef4delphi? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 17:08 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11, Да. Проверял на странице данной темы. Или давай ссылку на сайт, на котором нужно жмякнуть ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 17:11 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
SallerИли давай ссылку на сайт, на котором нужно жмякнуть ссылку. Жмакай на сиквел.ру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 19:46 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
так это ж не дельфи-код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2019, 19:48 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39840922&tid=2038489]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 371ms |

| 0 / 0 |
