Delphi Chromium,如何模拟html页面上的点击按钮

问题描述

我在 Delphi 10 上使用 TChromium 组件。 我需要将文本从 TMemo 传输到 html 中的 textarea 并模拟单击此页面上的按钮。

我试过了,没用

chromium1.browser.MainFrame.ExecuteJavaScript('document.all(id_4).value='+Memo1.text+';','',0);
Chromium1.browser.MainFrame.ExecuteJavaScript('id_2.click();',0);

基本上我需要下面的代码,但在 Delphi 10 中使用 TChromium。下面的代码在 delphi7 上使用 TWebbrownser。

Webbrowser1.OleObject.Document.all.Item('id_4',0).value := memo1.Text;
Webbrowser1.OleObject.Document.all.Item('id_2',0).click;

解决方法

如果您的 Memo1 包含文本:

里面有空间。

...然后:

document.all(id_4).value=With space in it.;

... 不是有效的 JavaScript,因为 With 未定义。还有以下三个标记加上点。您必须为其分配文本,因此在 Delphi 中您必须使用:

'document.all( id_4 ).value= "'+ Memo1.Text+ '";'

...作为文字,因为这样它就变成了有效的 JavaScript:

document.all( id_4 ).value= "With space in it.";

当然:如果 Memo1 的文本本身包含一个 ",您必须注意它。