Я пытаюсь автоматически заполнить веб-страницу. Заполнение элементов ввода и навигация с помощью кнопок работает нормально. Просто последняя кнопка «Сохранить» не срабатывает при программном нажатии на нее, а при щелчке мышью это происходит успешно. Кнопка «Сохранить» содержит Javascript. В документе это выглядит так:
<a title="Enregistrer / Save"
class="btn--icon icon-save ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
id="_save"
onclick="
$('#overlayLoading').dialog('open');
$('#form_model').attr('action', 'https://<some url>');
$('#form_model').submit();"
abp="1909">
<span
class="ui-button-text"
abp="1910">Enregistrer<br
abp="1911">
<span
lang="en"
abp="1912">Save
</span>
</span>
</a>
Я пробовал 3 разных подхода:
Первый подход:
Найдите IHTMLelement
с идентификатором "_save"
и выполните .click()
Navigate()
на URL, который встроен в элемент
Выполнение JavaScript следующим образом
var
Script: string;
DocPtr: IHTMLDocument2;
WinPtr: IHTMLWindow2;
Script :=
'$(''#overlayLoading'').dialog(''open'');'+
'$(''#form_model'').attr(''action'', ''https://<some url>'');'
'$(''#form_model'').submit();';
if Supports(WB.Document, IHTMLDocument2, DocPtr) and
Supports(DocPtr.parentWindow, IHTMLWindow2, WinPtr) then
WinPtr.execScript(Script, 'javascript');
Кажется, что все 3 метода работают, но веб-сервер возвращает страницу с ошибкой. Когда я вместо этого нажимаю мышью на кнопку, представленную в TWebBrowser
, веб-сервер возвращает успех.
Чем физический щелчок отличается от программного щелчка?