2013-08-11 2 views
5

Je développe une application de bureau dans Delphi XE4 en utilisant le composant TChromium pour afficher la page Web de Google Voice.Simuler cliquer sur DIV

je dois commencer un programme appel et je ne peux pas trouver un moyen de déclencher le code javascript derrière le bouton (il est un DIV) « CONNECT »:

enter image description here

TChromium permet d'exécuter javascript code et j'ai déjà réussi à simuler le clic sur le bouton "CALL" en utilisant un code javascript qui simule l'événement clé en utilisant le caractère "c" qui affiche le panneau. Cela fonctionne parce que Google Voice a des raccourcis et "c" est un raccourci valide pour commencer un appel. Aussi avec javascript, je peux définir le nombre dans le champ de saisie. Mon principal problème est que je ne sais pas comment simuler un clic sur « CONNECT »:

enter image description here

Comme vous pouvez le voir, il n'y a pas d'identité, pas onClick et il n'y a pas de raccourci pour déclencher Connect bouton.

je peux obtenir une référence à ce DIV en utilisant le code suivant:

document.getElementById(":87.mi").children[0].children[0].children[5].children[1].children[0].children[0].children[0].children[1]; 

Mais il est impossible de déclencher quoi que ce soit annexant .cliquez(). Je suppose que c'est parce que click() déclenchera la méthode onClick qui n'est pas définie. Est-il possible de savoir quel code javascript s'exécute quand quelqu'un clique sur ce div? Si le focus est dans l'entrée "Numéro à appeler", je peux appuyer sur "TAB" pour naviguer vers "Téléphone à appeler avec", puis sur "Se souvenir du choix" et enfin sur "Connecter" où je peux appuyer Entrez la clé pour le faire fonctionner aussi. J'ai essayé d'utiliser le même code qu'au début pour simuler le bouton CALL mais cette fois avec TAB (keycode 9 au lieu de 67) et ça ne marche pas car le focus ne bouge pas.

J'ai essayé de le faire par programme avec delphi aussi en utilisant mouse_event, keybd_event, PostKeyExHWND, PostKeyEx32 et PostMessage sans résultats que le focus ne se déplace pas loin de « numéro d'appel »

La seule option qui fonctionne maintenant est de déplacer la souris avec Delphi en utilisant SetCursorPos et de simuler un clic sur ce bouton en calculant les coordonnées mais ce sera ma dernière option à choisir car je préférerais un code javascript pour le faire.

Toutes les suggestions sont les bienvenues!

+0

Vous préférez une solution JS vanille à jQuery? Avez-vous une console disponible? L'événement se déclenche-t-il avec 'document.getElementsByClassName ('goog-button-base-content') [0] .click()'? – DevlshOne

+0

Je pense que JQuery n'est pas inclus dans cette page Web. S'il est possible de l'inclure dynamiquement c'est bon. Le lien de cette page Web est http: // google.com/voix mais vous devez être aux États-Unis et d'abord enregistrer un numéro de téléphone. –

+0

Ensuite, je suis sorti de ce jeu ... Donc, au moins, je vais ajouter un lien vers ['the question'] (http://stackoverflow.com/q/1668619/960757) demandant la solution la plus correcte, pour utiliser l'API officielle pour ce service. – TLama

Répondre

-1

Je suggère la solution suivante.

Dans un fichier javascript qui doivent être importés de la vue, placez le code suivant:

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

Ce que vous faites est que chaque fois ici que nous avons appuyé sur la div qui a cette classe, vous commencerez la logique à l'intérieur « CODE ICI »

(Désolé pour mon mauvais anglais)

J'espère être utile. Vous voir