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

Delphi Chromium,how simulate click Button on html page

提问人:William Miguel 提问时间:4/11/2021 最后编辑:William Miguel 更新时间:4/12/2021 访问量:554

问:

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

我一直在尝试,但没有用

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;
德尔福 浏览器 Chromium Tchromium

评论

0赞 fpiette 4/11/2021
“它不起作用”不足以帮助您。会发生什么?你得到和错误吗?
0赞 William Miguel 4/12/2021
当我使用显示的代码时,我无法将文本从 Memo1 发送到 html 中的 textarea。此代码不执行我需要的任务。

答:

1赞 AmigoJack 4/12/2021 #1

如果您包含以下文本:Memo1

里面有空间。

...然后:

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

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

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

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

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

当然:如果 的文本本身包含一个,你必须照顾它。Memo1"

评论

0赞 William Miguel 4/12/2021
该代码也不起作用。我需要将 Memo1 文本传输到此页面上的 html 文本区域: form.jotformz.com/90325850930657,然后立即模拟点击发送
0赞 AmigoJack 4/12/2021
由您来确保在 JavaScript 上下文中作为变量存在。但是,如果你的意思是字面意思,那么恐怕你还没有掌握这个答案是关于什么的,只是复制了代码。id_4'id_4'
0赞 William Miguel 4/12/2021
Amigojack 这不是 javascript...这只是示例html: <textarea id=“id_4” name=“id_4” rows=“4” cols=“50”>我的文本从memo1转移到这里。</textarea>