Я разрабатываю настольное приложение в Delphi XE4, используя компонент TChromium для отображения веб-страницы Google Voice.Имитировать клик по DIV
мне нужно, чтобы начать вызов программно, и я не могу найти способ, чтобы вызвать в яваскрипте кода позади кнопки (это ДИВО) «CONNECT»:
TChromium позволяет выполнять javascript, и мне уже удалось имитировать щелчок на кнопке «CALL», используя код javascript, который имитирует ключевое событие с использованием символа «c», отображающего панель. Это работает, потому что в Google Voice есть ярлыки, а «c» - это ярлык для запуска вызова. Также с javascript я могу установить число в поле ввода. Моя главная проблема в том, что я не знаю, как имитировать щелчок на «CONNECT»:
Как вы можете видеть, нет ID, нет OnClick и нет ярлыка для запуска Connect кнопка.
я могу получить ссылку на эту Div, используя следующий код:
document.getElementById(":87.mi").children[0].children[0].children[5].children[1].children[0].children[0].children[0].children[1];
Но это не возможно, чтобы вызвать что-либо добавления .click(). Я предполагаю, что это потому, что click() вызовет метод onClick, который не определен. Есть ли способ узнать, какой код javascript выполняется, когда кто-то нажимает на этот div?
Если в фокусе находится вход «Число для звонков», я могу нажать «TAB», чтобы перейти к «Телефон для звонка с», затем «Запомнить выбор» и, наконец, «Подключиться», где я могу нажать Введите ключ, чтобы он работал. Я попытался использовать тот же код, что и в начале, для имитации кнопки CALL, но на этот раз с TAB (код 9 вместо 67), и он не работает, так как фокус не перемещается.
Я пытался сделать это программно с помощью Дельфи также с помощью mouse_event, keybd_event, PostKeyExHWND, PostKeyEx32 и PostMessage без каких-либо результатов, фокус не отдаляться от «Номер для вызова»
Единственный вариант, который работает сейчас заключается в перемещении мыши с помощью delphi с помощью SetCursorPos и имитации щелчка на этой кнопке, вычисляющей координаты, но это будет мой последний вариант выбора, поскольку я бы предпочел использовать javascript-код для этого.
Любые предложения приветствуются!
Вы предпочитаете решение JS для ванилей для jQuery? У вас есть консоль? Вызывается ли событие триггером с 'document.getElementsByClassName ('goog-button-base-content') [0] .click()'? – DevlshOne
Я думаю, что JQuery не включен в эту страницу. Если это можно включить динамически, это нормально. Ссылка на эту веб-страницу: http: // google.com/voice, но вы должны быть в США и сначала зарегистрировать номер телефона. –
Тогда я вышел из этой игры ... Поэтому, по крайней мере, я добавлю ссылку на ['вопрос'] (http://stackoverflow.com/q/1668619/960757) с запросом на наиболее правильное решение, для использования официального API для этой услуги. – TLama