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 :)

0
Manuli 8 mars 2016 à 07:32

3 réponses

Meilleure réponse

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 :)

1
Manuli 8 mars 2016 à 05:33

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 ();}); };

2
OptimWorks 8 mars 2016 à 12:06

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);
  });

});

0
Kanhaiya Kumar 6 nov. 2017 à 17:03