Partage
  • Partager sur Facebook
  • Partager sur Twitter

Accéder à une iframe

    31 mars 2021 à 15:24:38

    Bonjour, 

    Je suis un peu en galère, pour tout vous expliquer , pour un stage je fais une petite application en VBA pour remplir des annonces automatiquement en récupérant les valeurs d'une base de données. J'ai réussis à remplir tout les champs sans problème sauf ceux présent dans une iframe.... 

    J'ai réussi à remplir le champ "description" situé lui aussi dans une iframe en faisant juste : 


    Set Remplir = IE.Document.getElementsByTagName("iframe")(4).contentDocument.getElementsByTagName("body")(0).innerText
        

    Mais pour la partie "ajouter une photo" accéder aux éléments lié à l'ajout de photo est impossible pour moi, même en utilisant la même méthode en adaptant le code. 

    J'ai tenté plusieurs chose : 

    MsgBox IE.Document.getElementsByTagName("iframe")(2).contentDocument.getElementsByTagName("body")(0).innerText
    

    J'ai une erreur automation avec cette methode , mais seulement si je cible cet iframe

    Set htmlDoc = IE.Document
        'Set htmlWindow = htmlDoc.frames(4)
        'Set objCollection = htmlWindow.Document.getElementsByTagName("body")(0)
        'MsgBox objCollection.innerHTML

    Avec cette méthode j'ai un accès refusé

    Je débute sur vba donc mon erreur est surement bête.

    En tout cas merci à vous pour votre aide. 

    Passez une bonne journée


    • Partager sur Facebook
    • Partager sur Twitter
      31 mars 2021 à 16:50:16

      Sans connaitre la structure de la page ciblée ça va être compliqué.

      Ton second code, va chercher le texte du body de l'iframe n°2

      la fonction getElementsByTagName va chercher les éléments de type de la balise spécifié

      la fonction getElementById va chercher l'élément qui a l'Id spécifié

      la fonction getElementsByClassName va chercher les éléments qui ont la(les) classes spécifiées.

      • Partager sur Facebook
      • Partager sur Twitter
        1 avril 2021 à 9:27:29

        Bonjour, 

        La première capture c'est l'iframe et la deuxième capture le bouton contenu dans l'iframe. 

        Et pour tout ce qui est ciblé un élément de ce côté je pense avoir tout compris mais merci quand même de ce petit rappel qui ne fait pas de mal. 
        • Partager sur Facebook
        • Partager sur Twitter
          1 avril 2021 à 12:03:10

          Du coup, pourquoi tu n'utilises pas le nom de l'id du bouton (ou plutôt de l'input) à savoir upl-fileImp ? et prendre la value pour récupérer  ou indiquer la liste des fichiers (je suppose que c'est le but)
          • Partager sur Facebook
          • Partager sur Twitter
            1 avril 2021 à 14:11:30

            C'est ce que j'ai déjà essayé de faire mais toujours une erreur automation. La j'ai mis ("body") pour l'exemple... Enfaîte pour essayer de montrer que iframe(4) j'ai réussi à faire ce que je voulais mais iframe(2) j'ai une erreur automation pour la même technique (même justement en ciblant l'id de ce que je souhaite)
            • Partager sur Facebook
            • Partager sur Twitter
              1 avril 2021 à 14:53:44

              et un IE.document.getElementById('upl-fileImp') directement ? ou IE.document.getElementsbyTagName('iframe')(2).document.getElementById('upl-fileImp').value

              Tu as un lien de cette page, que je puisse testé ?

              • Partager sur Facebook
              • Partager sur Twitter
                1 avril 2021 à 16:40:07

                J'ai essayé les deux, et j'ai une erreur à l'exécution comme si il ne trouvais pas l'élément. Je peux te donner le lien mais je sais pas si ça va servir à grand chose car en gros c'est un modèle ebay. Je me suis connecté sur ebay et j'ai fais "créé une  modèle"   , une fois créé , je vais dans "gérer le modèle" et "modifier" et je travail sur cette page. Vu que cette page est lié à mon compte je sais pas si te l'envoyer directement sera utile du coup. 

                • Partager sur Facebook
                • Partager sur Twitter

                Accéder à une iframe

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown