2017-04-18 5 views
1

Existe-t-il un mot-clé dans Robot Framework pour s'assurer que l'élément a une certaine classe? Quelque chose commeCadre de robot, comment vérifier la classe

Element should has class element className

, je pourrais également vérifier si l'élément a un attribut avec certaine valeur. Former serait plus approprié, car l'élément peut contenir plusieurs classes.

Répondre

4

Vous pouvez créer un nouveau mot-clé par sélecteurs XPath:

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}[contains(@class, '${className}')] 

ou via des sélecteurs CSS:

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}.${className} 

Wait until page contains element pourrait être remplacé par un mot clé de votre goût pour vérifier si l'élément existe et est visible, par exemple Element should be visible.

+0

'| FAIL | Element 'loginButton [contains (@class,' button-blue ')]' n'apparaît pas dans 5 secondes 'même s'il y a un élément avec id loginButton et class button-blue. J'ai également supposé que className dans le premier exemple a besoin d'accolades pour évaluer la variable. –

+1

@TuomasToivonen: J'ai oublié les accolades, désolé pour cela. Cela devrait fonctionner dès maintenant. 'loginButton' n'est pas un sélecteur XPath ou CSS valide, utilisez' # loginButton' ou '// * [@ id = 'loginButton']'. – Renzeee

3

est ici une solution alternative (bien que le un CSS de réponse acceptée est assez bonne), travaillant pour toute stratégie de sélection:

Element should have class 
    [Arguments] ${locator} ${target value} 

    ${class}=  Get Element Attribute ${locator}@class 
    Should Contain ${class}  ${target value} 

Il peut être modifié pour tout autre attribut - Il suffit de remplacer le @class dans Get Element Attribute avec lui (ou même, en faire un argument facultatif).