IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

WatiN - Problème d'accès aux iframes


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Par défaut WatiN - Problème d'accès aux iframes
    Bonjour à tous,

    Dans le cadre d'un projet, nous utilisons WatiN pour nos tests fonctionnels. Notre version est 2.0.20, utilisé dans Visual Studio 2008 sur plateforme .NET 3.5.

    A l'intérieur de l'un de nos processus business, nous devons passer par un système web nous permettant d'ajouter / sélectionner / éditer des partenaires (grosso mobo = clients). Ce système est intégré sur une page web de notre processus à l'aide d'une IFrame.

    Mon problème est que WatiN n'arrive pas à sélectionner les éléments qui se trouvent à l'intérieur de la frame. J'ai d'abord pensé à ajouter un Thread.sleep d'une dizaine de seconde avant d'essayer d'accéder à des éléments de la frame (qui n'est pas chargée en même temps que la page principale).

    Dans les codes qui suivent, m_commonTools.MyFrame est équivalent à :

    Mon premier code ressemblait donc à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Thread.Sleep(7000)
    m_commonTools.MyFrame.Button(Find.ById("ucSearch_btnSearch")).Click()
    J'ai pas trouvé beaucoup de documentation ou de forums sur WatiN, mais ce lien m'a donné une piste :

    http://geekswithblogs.net/mnf/archiv...ames-page.aspx

    J'ai donc adapté mon code pour récupérer l'objet frame dans un premier temps puis en cherchant pour le bouton comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Thread.Sleep(7000)
            Dim mpssFrame As WatiN.Core.Frame = m_commonTools.MyFrame.Frame("myIFrame")
            Dim button As WatiN.Core.Button = mpssFrame.Button(Find.ById("ucSearch_btnSearch"))
            button.Click()
    Ce code de test me retourne cette erreur que je ne comprends pas du tout :

    failed: Unable to cast COM object of type 'mshtml.HTMLDocumentClass' to interface type 'mshtml.DispHTMLDocument'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
    System.InvalidCastException
    Message: Unable to cast COM object of type 'mshtml.HTMLDocumentClass' to interface type 'mshtml.DispHTMLDocument'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
    Source: mscorlib
    StackTrace:
    at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
    at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
    at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
    at mshtml.HTMLDocumentClass.get_all()
    at WatiN.Core.Native.InternetExplorer.AllFramesProcessor..ctor(HTMLDocument htmlDocument)
    at WatiN.Core.Native.InternetExplorer.IEDocument.get_Frames()
    at WatiN.Core.FrameCollection..ctor(DomContainer domContainer, INativeDocument htmlDocument)
    at WatiN.Core.Document.get_Frames()
    at WatiN.Core.Document.Frame(Constraint findBy)
    at WatiN.Core.Document.Frame(String id)
    Est-ce un problème car ma frame est en fait une <IFrame> ? Si oui, est-il possible de résoudre cette erreur ? je n'ai pas vu d'objet IFrame dans le WatiN.Core, il n'y a visiblement qu'un objet Frame.

    Ou dois-je accéder aux éléments de l'iframe totalement différemment ? (si oui, quelques lignes d'exemples seraient les bienvenues )

    Merci d'avance, j'espère que j'ai posté plus ou moins au bon endroit, je n'ai pas vu de sous-forum dédié à WatiN (trop peu utilisé ?)

    Salutations !

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Par défaut
    Petite info si quelqu'un tombe sur la même erreur que moi : je n'ai pas trouvé de solution. Par contre, Sélénium m'a permis de passer le point où l'erreur apparaissait. Visiblement les deux solutions sont relativement équivalentes au niveau des fonctionnalités (en dehors de l'erreur WatiN que j'arrive pas à résoudre).

    Je suis toujours preneur si quelqu'un a la solution pour mon erreur WatiN.

Discussions similaires

  1. Problème d'accès aux méthodes d'une classe
    Par RR instinct dans le forum Langage
    Réponses: 5
    Dernier message: 26/06/2006, 14h51
  2. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  3. Réponses: 16
    Dernier message: 07/02/2006, 14h19
  4. [Applet] problèmes d'accès aux images
    Par wwave dans le forum Interfaces Graphiques en Java
    Réponses: 18
    Dernier message: 16/09/2005, 14h42
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo