2013-08-11 3 views
5

Я разрабатываю настольное приложение в Delphi XE4, используя компонент TChromium для отображения веб-страницы Google Voice.Имитировать клик по DIV

мне нужно, чтобы начать вызов программно, и я не могу найти способ, чтобы вызвать в яваскрипте кода позади кнопки (это ДИВО) «CONNECT»:

enter image description here

TChromium позволяет выполнять javascript, и мне уже удалось имитировать щелчок на кнопке «CALL», используя код javascript, который имитирует ключевое событие с использованием символа «c», отображающего панель. Это работает, потому что в Google Voice есть ярлыки, а «c» - это ярлык для запуска вызова. Также с javascript я могу установить число в поле ввода. Моя главная проблема в том, что я не знаю, как имитировать щелчок на «CONNECT»:

enter image description here

Как вы можете видеть, нет 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-код для этого.

Любые предложения приветствуются!

+0

Вы предпочитаете решение JS для ванилей для jQuery? У вас есть консоль? Вызывается ли событие триггером с 'document.getElementsByClassName ('goog-button-base-content') [0] .click()'? – DevlshOne

+0

Я думаю, что JQuery не включен в эту страницу. Если это можно включить динамически, это нормально. Ссылка на эту веб-страницу: http: // google.com/voice, но вы должны быть в США и сначала зарегистрировать номер телефона. –

+0

Тогда я вышел из этой игры ... Поэтому, по крайней мере, я добавлю ссылку на ['вопрос'] (http://stackoverflow.com/q/1668619/960757) с запросом на наиболее правильное решение, для использования официального API для этой услуги. – TLama

ответ

-1

Предлагаю следующее решение.

В файле JavaScript, которые должны быть импортированы из вида, поместите следующий код:

$(".goog-button-base-content").click(function(){ 
    //CODE HERE 
}); 

Что вы делаете здесь является то, что каждый раз, когда мы нажали DIV, который имеет этот класс, вы будете начать логика внутри «КОД ЗДЕСЬ»

(Извините за мой плохой английский)

Я надеюсь быть полезным. До встречи

 Смежные вопросы

  • Нет связанных вопросов^_^