Delphi Chromium, как имитировать нажатие кнопки на html-странице

Я использую компонент TChromium в Delphi 10. Мне нужно перенести текст из TMemo в текстовую область в html и имитировать нажатие кнопки на этой странице.

Я пробовал, но не работает

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

В основном мне нужен этот код ниже, но с использованием TChromium в Delphi 10. Этот код ниже находится на delphi7 с использованием TWebBrownser.

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

person William Miguel    schedule 11.04.2021    source источник
comment
Это не работает недостаточно, чтобы помочь вам. Что случается? Вы получаете и ошибка?   -  person fpiette    schedule 11.04.2021
comment
когда я использую показанный код, я не могу отправить текст из Memo1 в текстовую область в html. Этот код не выполняет нужной мне задачи.   -  person William Miguel    schedule 12.04.2021


Ответы (1)


Если ваш 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, если он сам содержит ".

person AmigoJack    schedule 11.04.2021
comment
Этот код тоже не работал. Мне нужно перенести текст Memo1 в текстовую область html на этой странице: form.jotformz.com/90325850930657 и сразу после этого имитируйте щелчок для отправки - person William Miguel; 12.04.2021
comment
Вы должны убедиться, что id_4 существует как переменная в контексте JavaScript. Но если вместо этого вы имеете в виду буквальное 'id_4', то, боюсь, вы не поняли, о чем этот ответ, и просто скопировали код. - person AmigoJack; 12.04.2021
comment
Amigojack это не javascript... Это просто образец html: ‹textarea id=id_4 name=id_4 rows=4 cols=50> Мой текст перенесен из memo1 сюда. ‹/текстовое поле› - person William Miguel; 12.04.2021