Вверх ↑
Этот топик читают: Гость
Ответов: 312
Рейтинг: 5
#1: 2019-06-08 18:54:24 ЛС | профиль | цитата
На странице WebBrowser есть ‹iframe ... ‹/iframe› нужно кликнуть по фрейму, а потом еще и по ссылке в открывшемся фрейме. Никак не реагирует. Посмотрите в IC строчку Document.Frames.item(0).click; что там не так. Почитал разные форумы, у всех работает, а тут нет

Add(InlineCode,6524878,147,112)
{
@Hint=#4:Лайк|
WorkPoints=#25:Zap=Заполнить и отправить|
DataPoints=#1:h|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|61:uses kol,Share,Debug,windows,ActiveX,KOLSHDocVw,Win,ShellApi;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|16: wb:PControl;|9: public|16: h:THI_Event;|19: Name:THI_Event;|4: |46: procedure Zap(var Data:TData; index:word);|4: |5: end;|0:|15:implementation |0:|4:type|31: TKOLWebBrowser = PWebBrowser;|31: PKOLWebBrowser = PWebBrowser;|2: |26:procedure THiAsmClass.Zap;|5:begin|35: wb := PControl(ToIntegerEvent(h));|60: PKOLWebBrowser(WB).OleObject.Document.Frames.item(0).click;|5: end;|0:|4:end.|
}

карма: 2

0
vip
#1.1контекстная реклама от партнеров
Ответов: 312
Рейтинг: 5
#2: 2019-06-09 11:59:48 ЛС | профиль | цитата
Вот полный код для теста на сайте
Add(MainForm,2953706,21,112)
{
Width=467
Height=560
link(onCreate,7375494:doText,[])
}
Add(WebBrowser,10901339,322,126)
{
Width=451
Height=522
Align=5
URL=""
Silent=0
Point(PHandle)
}
Add(VisualStrings,7375494,70,126)
{
Lines=#42:https://www.google.com/recaptcha/api2/demo|
Width=235
Point(doText)
Point(onText)
link(onText,10901339:doNavigate,[])
}
Add(InlineCode,6524878,336,175)
{
WorkPoints=#25:Zap=Заполнить и отправить|
DataPoints=#1:h|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|61:uses kol,Share,Debug,windows,ActiveX,KOLSHDocVw,Win,ShellApi;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|16: wb:PControl;|9: public|16: h:THI_Event;|19: Name:THI_Event;|4: |46: procedure Zap(var Data:TData; index:word);|4: |5: end;|0:|15:implementation |0:|4:type|31: TKOLWebBrowser = PWebBrowser;|31: PKOLWebBrowser = PWebBrowser;|2: |26:procedure THiAsmClass.Zap;|5:begin|35: wb := PControl(ToIntegerEvent(h));|60: PKOLWebBrowser(WB).OleObject.Document.Frames.item(1).click;|5: end;|0:|4:end.|
link(h,10901339:PHandle,[])
}
Add(Button,13390046,280,175)
{
Left=15
Top=475
Width=65
Height=35
Font=[MS Sans Serif,8,1,0,1]
Caption="Click"
link(onClick,6524878:Zap,[])
}
Add(InlineCode,10005670,322,70)
{
WorkPoints=#6:Parsel|
EventPoints=#7:CurText|
DataPoints=#2:ph|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|61:uses kol,Share,Debug,windows,ActiveX,KOLSHDocVw,Win,ShellApi;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: ph:THI_Event;|22: CurText:THI_Event;|0:|47: procedure Parsel(var dt:TData; index:word);|0:|5: end;|0:|14:implementation|0:|4:type|31: TKOLWebBrowser = PWebBrowser;|31: PKOLWebBrowser = PWebBrowser;|0:|29:procedure THiAsmClass.Parsel;|16:var pc:PControl;|15: txt:string;|5:begin|36: pc := PControl(ToIntegerEvent(ph));|81: txt := PKOLWebBrowser(pc).OleObject.Document.all.tags('body').Item(0).outerHTML;|26: _hi_OnEvent(CurText,txt);|4:end;|0:|4:end.|
link(CurText,4229089:doPutText,[])
}
Add(Clipboard,4229089,371,70)
{
}
Делал еще так: PKOLWebBrowser(WB).OleObject.Document.getElementsByTagName('iframe').item(1).click;
Тоже не реагирует. Нужно запустить рекапчу, в ней кликнуть на аудио и скачать или прослушать звук. На форумах нашел простой код в виде OleObject.document.frames.item(0).document.all.tags("a").item(1).click; так если открыть рекапчу вручную и попытаться кликнуть внутри нее, то программа моментально закрывается без ошибки. Неужели никто не знает как с фреймами работать?

Редактировалось 2 раз(а), последний 2019-06-10 13:01:38
карма: 2

0
Ответов: 312
Рейтинг: 5
#3: 2019-06-10 13:04:28 ЛС | профиль | цитата
Вопрос решен, вставляю в открытую страницу свой JS и из него делаю все что нужно.
карма: 2

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)