Как нажать кнопку в интернете программно

Как вызвать нажатие кнопки в содержимом страницы TWebBrowser ? Я нашел этот код для VCL и более старой версии Delphi:

WebBrowser.OleObject.Document.GetElementByID('ID HERE').Click;

Я использую XE5, разрабатываю для Android и iOS, поэтому не могу использовать приведенный выше код. Любая помощь или предложения будут высоко оценены. Спасибо !


person ThisGuy    schedule 18.02.2014    source источник
comment
Почему вы не можете использовать этот код? У вас нет элемента управления TWebBrowser? Если нет, то какой контроль вы имеете вместо этого? Предоставьте больше контекста для вашего вопроса. Какие возможности предлагает ваш элемент управления для взаимодействия со страницей? Продемонстрируйте собственные исследовательские усилия.   -  person Rob Kennedy    schedule 19.02.2014
comment
Вы должны выполнить поиск в WebView, который является элементом управления, который TWebBrowser обертывает на устройствах Android. Эта ссылка может иметь что-то, что вы можете использовать developer.android.com/reference/android/ webkit/WebView.html. Также есть вопрос о выполнении этого в Javascript, который может помочь stackoverflow.com/questions/16709963/.   -  person Graymatter    schedule 19.02.2014
comment
@Rob, у меня есть и я использую TWebBrowser, но мое приложение предназначено для FMX. TWebBrowser для FMX не имеет подкласса oleObject.   -  person ThisGuy    schedule 19.02.2014
comment
@RobKennedy он говорит, что я использую XE5, разрабатываю для Android и iOS ‹b›so‹/b› (подразумевает причинно-следственную связь). Я не могу использовать приведенный выше код. поэтому ваш вопрос «i›почему»/i› (а) излишен и (б) выходит за рамки вопроса «i›его»/i›. Очевидно, он исследовал применимость этого кода к своему контексту и ищет альтернативы. Если бы он нашел альтернативу, его бы здесь не спрашивали! Возможно, когда он научится это делать, вы сможете попросить его написать статью в блоге или докторскую диссертацию, но не раньше.   -  person Sam    schedule 19.02.2014
comment
@JordanWeb Нет проблем, Джордан, но я не думаю, что Роб тоже вписывается в этот стереотип. Просто его уровень навыков намного выше нашего, и его единственная вина здесь в том, что он пытается навязать необоснованный стандарт, как описано в каком-то тупом FAQ. Это глупый FAQ виноват в том, что некоторые модераторы кажутся излишне резкими, когда на самом деле они просто пытаются поддерживать некоторые стандарты. Роб даже не стал бы заморачиваться с этим сайтом, если бы он не был полезным парнем с самого начала. Поэтому я думаю, что Роб заслуживает некоторого послабления, как и мы с нашими, казалось бы, элементарными вопросами с точки зрения эксперта.   -  person Sam    schedule 19.02.2014
comment
Я пытался сделать это с помощью js, но, к сожалению, не удалось (по крайней мере, на Android). Может ли реализация TWebBrowser для iOS запускать JavaScript?   -  person naXa    schedule 11.04.2014
comment
В своем последнем обновлении Embarcadero исправила сотни ошибок дизайна и производительности для XE6. Для компонента TWebBrowser FireMonkey теперь предоставляет метод EvaluateJavaScript. Вы можете использовать его следующим образом: WebBrowser.EvaluateJavaScript('document.getElementById("BUTTON ID HERE").click();');   -  person naXa    schedule 29.04.2014


Ответы (1)


Для Android: очевидно, что вам может понадобиться написать функцию JS на веб-странице, а затем вы можете вызвать функцию JS с помощью JSInterfaces.

Для iOS: вы можете вызвать метод экземпляра, предоставленный в классе UIWebView, для вызова метода Javascript. Для справки см.: https://developer.apple.com/library/ios/documentation/uikit/reference/UIWebView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006950-CH3-SW21< /а>

person Usman Awan    schedule 15.05.2014