为什么TWebbrowser IHTMLElement.click失败,而鼠标单击成功

时间:2019-01-07 21:05:06

标签: javascript delphi onclick twebbrowser

我正在尝试自动填充网页。填充输入元素并使用按钮导航可以正常工作。以编程方式单击时,仅最后一个“保存”按钮会失败,而使用鼠标单击会成功。保存按钮似乎包含一些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种不同的方法:

第一种方法:

  1. 搜索ID为IHTMLelement的{​​{1}}并执行"_save"

  2. .click()到元素中嵌入的URL

  3. 像这样执行JavaScript

    Navigate()

所有3种方法似乎都可以使用,但是Web服务器返回错误页面。相反,当我用鼠标单击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'); 中显示的按钮时,Web服务器将返回成功。

物理点击与程序点击有何不同?

0 个答案:

没有答案