2017-02-09 1 views
1

gars. Je suis nouveau dans Robot Framework et peut-être ma question semble simple mais je ne trouve pas la bonne solution.Comment dans Robot Framework obtenir la valeur de sélecteur de la bibliothèque dans "Test Cases"

je un test:

*** Settings *** 
Documentation Login Scenarios 
Library ExtendedSelenium2Library 
Library Resources/LoginPage.py 
Resource Resources/Common.robot 
Library Resources/TopMenuPage.py 
Suite Setup Begin Web Test 
Suite Teardown End Web Test 

*** Variables *** 
${USERNAME} user 
${PASSWORD} password 

*** Test Cases *** 
Login With Valid Credentials 
    [Documentation] Login With Valid Credentials 
    [Tags] Functional 
    LoginPage.input_username ${USERNAME} 
    LoginPage.input_password ${PASSWORD} 
    LoginPage.click_sign_in_button 
    ${test} TopMenuPage.get_selectors 
    page should contain link ${test['logoutButton']} 
    [Teardown] click link css=[ng-click="mainCtrl.logout()"] 

et j'ai ma bibliothèque (TopMenuPage.py) Code:

selectors = { 
    "logoutButton": "css=[ng-click=\"mainCtrl.logout()\"]", 
    "welcome": "binding=mainCtrl.user.name" 
} 

class TopMenuPage(object): 
    def get_selectors(self): 
     return selectors 

Comment, dans le bon sens, je peux obtenir mes sélecteurs en test? Par exemple:

page should contain link TopMenuPage.get_selectors['logoutButton'] 

Merci pour la réponse.

+0

Pour l'instant j'utilise la variable supplémentaire $ {test} et c'est du travail. Mais je pense que ce n'est pas une bonne solution. –

Répondre

0

Vous ne pouvez pas faire page should contain TopMenuPage.get_selectors['logoutButton'] car page should contain requiert une chaîne comme argument et non comme appel de fonction. Vous devrez appeler TopMenuPage.get_selectors et enregistrer le résultat dans une variable, puis utiliser la variable.

+0

Merci pour la réponse. Juste une dernière question: Puis-je créer une variable qui sera disponible dans toutes les suites? J'ai essayé de déplacer la variable $ {test} vers *** Variables *** mais j'ai obtenu une ERREUR - "La variable de résolution '$ {test [' logoutButton ']}' a échoué: TypeError: les index de chaîne doivent être des entiers" –

+0

@ AlexanderMelnychuk "oui, le robot prend en charge les variables de test, de suite et globales.Tout est documenté dans le [guide de l'utilisateur] (http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#using-set-test-suite-global-variable -mots clés). –