2016-06-02 1 views
1

ScénarioBehati sélecteur CSS - Trouver par classe ne peut se faire avec la première classe

Supposons que vous avez un champ d'entrée avec plusieurs classes CSS, telles que:

<input class="form-control existing-user" value="Darth Darth Binks"/> 

Et dans le Behati étape vous voulez trouver sa valeur en trouvant l'élément d'entrée par classe CSS.

Cela fonctionne

$field = $this->getPage()->findAllBy('css', 'form-control')[0]->getValue(); 
// $field is now "Darth Darth Binks" 

Cela ne fonctionne pas

$field = $this->getPage()->findAll('css', 'existing-user')[0]->getValue(); 
// $field is now null 

Question

Quelle est la différence ici? Dois-je faire quelque chose de spécifique si je cherche l'un des cours qui ne sont PAS écrits en premier?

+0

[Itérer les éléments div avec le même nom de classe pour obtenir leur contenu] (http://www.inanzzz.com/index.php/post/vsok/iterate-div-elements-with-same-class-name-to -get-their-contents), [Cliquez sur un élément qui possède une étiquette d'identification avec un sélecteur CSS] (http://www.inanzzz.com/index.php/post/2y0l/click-on-an-element-that -has-id-tag-avec-css-selector), [Obtenir le contenu de l'élément donné avec ID] (http://www.inanzzz.com/index.php/post/97ju/get-the-content -of-given-element-with-id), [Cliquez sur un élément qui possède une étiquette d'identification] (http://www.inanzzz.com/index.php/post/pzxm/click-on-an-element- that-has-an-id-tag) – BentCoder

Répondre

1

Dans les deux exemples, vous devez utiliser un sélecteur css valide. Pour la classe, vous devez utiliser un '.' devant la classe. Certains sélecteurs CSS valides pour l'élément d'entrée fourni sont:

input.form-control 
 
input.existing-user 
 
input.form-control.existing-user

Ainsi, une utilisation valide serait:

$field = $this->getPage()->findAll('css', '.existing-user')->getValue(); 

s'il vous plaît aussi s'il vous plaît garder à l'esprit que la méthode findAll ne serait pas throw exception si l'élément n'est pas trouvé, à la place retournera null et l'utilisation de get value sur un null produira une erreur fatale php. Implémenter la gestion des exceptions et utiliser/implémenter une méthode waitForElement si nécessaire.