[R] Comment récupérer des objets d'une IFrame

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

[R] Comment récupérer des objets d'une IFrame

#1

Message par psykowarior »

Bonjour,

J'ai développer un script qui me permet de me loguer sur un site, dans le quelle je dois télécharger des fichier.
je bloque sur un point précis.
dans le source d'une des fenêtres il y a une balise <iframe>
► Afficher le texte
cette balise ouvrir un code source qui est exécuter par IE en conséquence je n'arrive pas a atteindre les objets qui s'y trouve.
toute les tentative que fait n'aboutisse qu'a récupérer les objet de la première fenêtre dans le meilleur des cas.
du coup les 'name' du second code source ne sont jamais reconnu
des idées ?
Modifié en dernier par psykowarior le lun. 17 oct. 2011 16:29, modifié 4 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: comment recuperer des objet d'une IFrame

#2

Message par sksbir »

bonjour
pas sûr que ça marche sur les iframe, mais tu peux toujours essayer ce petit bout de code:
► Afficher le texte
Et sinon, tu vas te faire modérer si tu ne respectes pas les règles du forum ( [..] devant le titre, ça ne te rappelle rien ?...)
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: Comment recuperer des objet d'une IFrame

#3

Message par psykowarior »

merci je teste sa tout de suite
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [...]Comment recuperer des objet d'une IFrame

#4

Message par psykowarior »

j'obtient l'erreur suivante :
► Afficher le texte
y'a t il une raison particulière qu'il soit suivi d'un '&='
et si je le remplace par un '=', j'obtient l'erreur suivante
► Afficher le texte
Modifié en dernier par psykowarior le mer. 12 oct. 2011 18:26, modifié 1 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [...]Comment recuperer des objet d'une IFrame

#5

Message par sksbir »

oui, en fait, le code n'était pas à employer tel quel, mais à insérer dans un code existant. C'était pour te montrer comment on utilise _IEFrameGetCollection, et si ça pouvait convenir sur ta page...

$o_refobj est donc un objet tiré de ta page via IE.au3

voici un exemple opérationnel.. A toi de changer l'URL...
► Afficher le texte

et sinon, c'est pas [...], c'est [..]
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [...]Comment recuperer des objet d'une IFrame

#6

Message par psykowarior »

pour cette variable je n'ai pas de problème mais la variable TEXTE ma posé quelque problème.
j'ai corriger en fonction de l'exemple que tu m'as donné et j'obtient l'erreur suivante :
► Afficher le texte
j'ai bien l'impression que le fait que la frame n'est récupérer car elle point vers un fichier *.jsp
Modifié en dernier par psykowarior le mer. 12 oct. 2011 18:55, modifié 1 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..]Comment recuperer des objet d'une IFrame

#7

Message par sksbir »

ha zut, c'est ça quand on essaye d'adapter les programmes...

oublie mon exemple , il est foireux pour ton cas particulier ...

voici un nouveau code construit à partir de l'exemple pour IEFrameGetCollection :
► Afficher le texte
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [..]Comment recuperer des objet d'une IFrame

#8

Message par psykowarior »

merci pour les info sksbir
je testerai demain
bonne soirée
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [..] Comment récupérer des objets d'une IFrame

#9

Message par psykowarior »

J'ai pu adapter le code a mon programme, la frame est bien détecter.
Jai bien l'url du fichier jsp, mais il semblerait que ce soit plus une iframe
j'ai eu l'information en testant avec ce code :
► Afficher le texte
c'est le prog de test pour la fonction _IEIsFrameSet, je sais pas qu'elle sont les différences entre les frames et iframes, mais surtout comment ces dernières sont gérer.

extrait du code de la page 1
► Afficher le texte
extrait de la page 2
► Afficher le texte
extrait de mon code
► Afficher le texte
et donc j’obtiens l'erreur suivante =
IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: realTimeStatsForm, Index: 0)

j’essaie de passé la valeur du menu déroulant a 970820032
une idee ?
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comment récupérer des objets d'une IFrame

#10

Message par sksbir »

Quand je regarde ton code, je me dis que t'as raté une étape...
entre
$o_Frames = _IEFrameGetCollection ($o_ie)
et
$form = _IEGetObjByName($o_Frames,"realTimeStatsForm")

$o_Frames est une collection de frames.

Regarde l'exemple qui est posté en bas de l'aide de _IEFrameGetCollection, tu verras un script qui énumère les propriétés des frames trouvées : c'est une boucle car le script est juste un exemple.
Mais toi, pour ton cas particulier, il y a forcément une frame qui t'intéresse... disons, la 2eme frame...( tu vas le savoir justement en faisant tourner le script de l'exemple...)

Donc, ton code devient:
$o_MAFrame = _IEFrameGetCollection ($o_ie,2)
$form = _IEGetObjByName($o_MAFrame,"realTimeStatsForm")


déjà, ça devrait marcher mieux...
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [..] Comment récupérer des objets d'une IFrame

#11

Message par psykowarior »

j'ai testé, pour toute index différent de 0 j’obtiens
IE.au3 V2.4-0 Warning from function _IEFrameGetCollection, $_IEStatus_NoMatch

avec l'index a 0, j'obtiens
IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: realTimeStatsForm, Index: 0)
peut importe l'index que je met dans la fonction _IEGetObjByName

j'ai comme l'impression qu'il ne détecte qu'une seul frame
j'ai testé la fonction _IEIsFrameSet en intégrant l'exemple suivant dans mon code
► Afficher le texte
J'obtient le message suivant = page contains 1 iFrames

quand je récupère la source de $oIE ou de $oFrames j'ai le même code source
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [..] Comment récupérer des objets d'une IFrame

#12

Message par psykowarior »

J'ai trouvé la solution,
en faite la première page ne contenait qu'une seul frame
cette frame contenait une autre frame qui contenait l'objet qui m’intéresse du coup le code c'est :
► Afficher le texte
Modifié en dernier par psykowarior le mar. 18 oct. 2011 10:22, modifié 1 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comment récupérer des objets d'une IFrame

#13

Message par sksbir »

psykowarior a écrit :J'ai trouvé la solution....
Content pour toi. mais reconnais que la solution n'était à la portée de personne ici, sans avoir au minimum le code HTML complet de ta page...
psykowarior
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 28 avr. 2011 22:31
Status : Hors ligne

Re: [R] Comment récupérer des objets d'une IFrame

#14

Message par psykowarior »

sksbir a écrit :Content pour toi. mais reconnais que la solution n'était à la portée de personne ici, sans avoir au minimum le code HTML complet de ta page...
La page HTML contenais énormément d'information personnelle et professionnelle, je ne pouvais pas saisir les codes entier.
Mais surtout pourquoi un telle commentaire ? Aurais sous entendu malgré moi que personne ne m'as aidé ?

J'ai effectivement trouvé la solution, et l'ai donné des fois que cela puisse inspiré d'autre qui aurait un problème similaire, a savoir une frame encapsulé dans un frame, donnant ainsi comme résultat au code que tu m'as donné qu’une seul frame alors qu'il y en a 2
Répondre