2017-07-19 3 views
1

Je ne suis pas habitué à utiliser geb et spock, mais j'essaie de valider une image affichée sur une page Web lorsque je n'ai que la source-view du code. Tout conseil est apprécié! J'ai modélisé ce code à partir d'un test de lien que j'ai précédemment écrit, donc je suis certain qu'il me manque quelque chose. Un exemple de mon fichier de page est:Valider l'image sur une page Web en utilisant Geb et Spock

// code not included where I have defined the url/etc. Below is content 

someImage { $("img", file: "image-logo.png") } 

Et un exemple de ma page spec est:

def "Valid image"() { 
     given: "an image checker" 
     to SomePage 
     when: 
     someImage.hover() 
     then: 
     verifyAt() 
+0

Que voulez-vous dire par «valider» dans ce contexte, le lien/c'est checksum/...? –

+0

Désolé, j'essaie de valider que l'image est présente sur la page Web. Je pensais pouvoir le faire en vérifiant si le nom du fichier était présent sur la page source, mais je ne suis pas sûr que ce soit la bonne approche pour gérer cela. – Rae

+1

Vous devez rechercher l'image via le sélecteur id/css, puis vérifier la propriété 'src'. –

Répondre

0

Vous pouvez vérifier que le style d'image est réglée sur displayed, tout contenu qui a la propriété css display: none ne peut pas interagir via l'API webdriver.

J'ai connu quelques problèmes avec l'utilisation de la méthode isDisplayed sur les objets du navigateur dans Geb donc je fais ce qui suit:

Si vous définissez le contenu de la page ajouter une méthode de vérification du contenu peut être interagi avec (est donc mis à afficher):

someImage { $("img", file: "image-logo.png") } 

Boolean contentDisplayed(Navigator content) { 
    content 
} 

Ensuite, votre test ressemblera à ceci:

def "Valid image"() { 
    given: "an image checker" 
    to SomePage 
    when: 
    someImage.hover() 
    then: 
    contentDisplayed(someImage) 

son intéressant de noter ici En accédant simplement à la méthode .hover, vous validez que l'image est displayed en ce qui concerne le CSS. Donc, vous pouvez simplifier le test à:

def "Valid image"() { 
    when: "an image checker" 
    to SomePage 
    then: 
    contentDisplayed(someImage) 
+1

Merci, c'était très utile! – Rae