2017-01-10 1 views
0

Je suis un débutant complet avec un logiciel de test automatisé. (. Codeception et PHP7 sont installés dans un environnement Centos 7)
Conditions:
1. Page Mon index.html comprend x nombre de liens
2. Lorsque (a href) liens sont visités, la page affiche «Vous avez sélectionné l'élément i».
3. Dans les liens, un certain nombre de liens défectueux peuvent exister. Lorsque des liens défectueux sont visités, il affiche une alerte indiquant que l'élément sélectionné n'existe pas.Visiter plusieurs liens sur une page. [codeception]

Ce que je suis en train de faire:
Construire un test de vérification de l'existence de liens défectueux. S'il existe, retourne le texte d'ancrage du lien.


Voici ce que je faisais: (évidemment mal ..)

<?php <br> 
$I = new AcceptanceTester($scenario);<br> 
$I->wantTo('browse items');<br> 
$I->amOnPage('/index.html');<br> 
$I->click('a');<br> 
$I->see('You have Selected Item i');<br> 

Problème
code ci-dessus, il entre dans le premier lien, il vérifie le texte donné. Après avoir vérifié le premier, peu importe le résultat, je veux qu'il vérifie le lien suivant sur l'index.html jusqu'à ce que tous les liens soient visités. Cependant il reste à la page visitée et s'arrête là.

J'espère que c'est assez clair. Merci d'avance!

Répondre

2

Avez-vous essayé de googler cela? Une simple recherche de "boucle de codeception à travers des liens" m'a donné ceci: Loop through links on a page in Codeception Tests

Cochez la réponse à cette question. Peut-être ce que vous cherchez.

+0

Nous vous remercions de votre réponse. Oui, j'ai vérifié le poste avant. Si je l'ai bien compris, ça donne string [] avec tout l'url à l'intérieur. Cependant, cela ne peut pas être cliqué via la méthode de clic car ce n'est pas un bouton. –

+0

Vous ne pouvez pas utiliser la fonction de visite alors? Techniquement, c'est la même chose que de cliquer sur le lien si je ne me trompe pas. – Alx101

+2

Vous pouvez utiliser la méthode 'moveBack' pour retourner à la liste avant de cliquer sur le lien suivant. – Naktibalda

1

J'ai donc obtenu cette réponse, avec l'aide de '@ Alx101' et de '@Naktibalda'. Vraiment apprécié.

Ici, je partage ma réponse:
$ I = new AcceptanceTester (scénario de $);
$ I-> wantTo ('parcourir les éléments');
$ I-> amOnPage ('/ index.html');
$ aLinks = $ I-> grabMultiple ('a', 'href');

foreach ($ aLinks comme lien $)
{
          I $ -> amOnPage ('/'.$ link);
          $ I -> voir ('élément sélectionné');
          $ I -> moveback();
          echo $ link;
}

Toutes les réponses partagées avec d'autres méthodes ou des méthodes améliorées seront appréciées! :)