Je suis un nouveau QA né et j'essaie ici d'écrire un script Protractor pour sélectionner une option dans une liste déroulante. Il y a 2 options dans ma liste déroulante et j'essaie de le sélectionner à partir du numéro.
Voici le code que j'utilise.
var selectDropdownbyNum = function ( element, optionNum ) {
if (optionNum){
var options = element.findElements(by.tagName('entity.company_id as entity.company_name for entity in entities'))
.then(function(options){
options[1].click();
});
}
};
L'option 2 est sélectionnée par défaut au chargement de la page. Ce dont j'ai besoin, c'est de sélectionner l'option 1 dans la liste déroulante. Mais mon code ne fait pas ça.
Voici l'extrait de code de l'option de sélection.
<select required="required" class="form-control empty ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched" name="entity_id" ng-model="invoice.entity_id" ng-options="entity.company_id as entity.company_name for entity in entities" ng-required="true" ng-change="entitySelect(invoice.entity_id)">
<option value="string:568f97841a4885e5de39900e" label="Option Global">Option Global</option>
<option selected="selected" value="string:568f976a1a4885e5de39900d" label="Option Computer Studies">OptionComputer Studies</option>
</select>
Merci d'avance :)
3 réponses
J'ai trouvé la réponse parfaite.
element.all(by.css('cssSelector of the dropdown')).each(function (eachElement, index)
{
eachElement.click();// select the <select>
browser.driver.sleep(500);// wait for the renderings to take effect
element(by.css('cssSelector of option want to select')).click();// select the first md-option
browser.driver.sleep(500);// wait for the renderings to take effect
});
Cela fonctionne comme calme :)
Var selectDropdownbyNum = fonction (dropDown, optionNumber) {
DropDown.click (). then (function () {element.all (by.tagName ('entity.company_id as entity.company_name for entity in entity')). first (). click ();}); };
Vous avez la réponse parfaite
Var selectOption = element (by.model ("facture.entity_id")). all (by.tagName ('option')); selectOption.get (1) .click ();
Nous pouvons également obtenir toutes les valeurs des options pour chaque fonction
SelectOption.each (fonction (élément, index) {
//Resolve the promise
item.getText().then(function(data){
console.log(data+" "+index);
});
});
Questions connexes
Questions liées
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.