2017-07-14 26 views
0

Je travaille sur un projet avec un framework de robot, une bibliothèque de pageobject, une bibliothèque selenium2.
Je ne pouvais pas trouver un moyen d'utiliser plusieurs mixins sur un objet de page.
Je veux utiliser deux mixins avec LoginPage.
MainNavigation fonctionne mais HeaderMixin ne fonctionne pas.
La configuration de ma suite se connecte à tous les tests, donc j'ai besoin d'utiliser des mixins sur cette page de connexion
Comment utiliser plus d'un mixin sur un objet de page?Robot Framework, héritant de plusieurs mixins

ceci est mon objet LoginPage:

class LoginPage(MainNavigation, HeaderMixin, PageObject): 
    """LoginPage baseclass""" 

    PAGE_URL = "/user/login" 
    PAGE_TITLE = "Title" 

    _locators = { 
      "username": 'id=login_email', 
      "password": 'id=login_password', 
      "button": "id=login" 
    } 
+0

s'il vous plaît fournir un [mcve]. "ne fonctionne pas" n'est pas assez d'informations pour continuer. Cela aiderait également à montrer quelle bibliothèque d'objets de page vous utilisez. Je suppose que https://github.com/boakley/robotframework-pageobjectlibrary, mais vous devriez inclure cette information dans votre question. –

Répondre

0

Il n'y a rien spécial que vous devez faire pour utiliser plusieurs mixins - il suffit de créer une classe de python avec de nouveaux mots-clés que vous voulez, et inclure les mixins lors de la définition de la classe.

Par exemple, considérons les deux classes mixins suivantes:

class MainNavigation(): 
    def main_nav_keyword(self): 
     pass 

class HeaderMixin(): 
    def header_keyword(self): 
     pass 

Vous pouvez utiliser ces mixins dans votre classe LoginPage:

class LoginPage(MainNavigation, HeaderMixin, PageObject): 
    ... 

Au sein d'une classe qui utilise le LoginPage, vous pouvez désormais accéder les mots-clés de navigation et les mots clés d'en-tête comme si elles faisaient partie de la page:

*** Test Cases *** 
Example 
    go to page LoginPage 
    the current page should be LoginPage 
    main nav keyword 
    header keyword 
+0

ma première page est LoginPage et j'ai essayé comme vous l'avez dit avant, mais cela ne fonctionne pas –

+0

@ KaanSan: "ne fonctionne pas" est une phrase inutile. Vous devez obtenir une sorte d'erreur ou un comportement inattendu. Vous devez modifier votre question pour inclure l'erreur ou un comportement inattendu. –