Найти элемент по лебедке css не активен с помощью углового транспортира - PullRequest
0 голосов
/ 21 сентября 2018

Я использую Protractor для автоматического тестирования моего приложения.Я получаю элемент с помощью определения класса CSS в HTML.Теперь у меня есть поле формы коврика.внутри этого поля формы у меня есть много вариантов матов.Я хочу реализовать случайный выбор для этой опции, чтобы проверить мое приложение.Я объясняю подробно.

Здесь, в моем классе HTML

<mat-form-field>
   <mat-select class="t-day" matInput placeholder="{{ 'Day' | translate }}" [(ngModel)]="settings.day" name="day">
   <mat-option class="t-hour-option" *ngFor="let day of days" [value]="day.value">{{ day.text }}</mat-option>
  </mat-select>
</mat-form-field>

Теперь в тестовом классе я сначала нажимаю на поле, а затем выбираю случайную опцию из этого.Я пытаюсь таким образом.

 let dayfield = element(by.css('.t-day'));
 let picktime = element.all(by.css('.t-hour-option.mat-option:not(.t-hour-option.mat-option.mat-selected.mat-active)'));

    await click.onto(productionDayEnd)
    await productionDayEnd.isDisplayed();

    await click.onto(picktime);

Но он не щелкает и не работает.Я не уверен, что не так в этом случае.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы используете .mat-option в качестве класса, но на самом деле это тег.
$$('mat-option.t-hour-option:not(.mat-active)'); ИЛИ
$$('.t-hour-option:not(.mat-active'); - некоторые из возможных решений.

Однако я не наденуне вижу класс с именем .mat-active, хотя он потенциально может быть отрендерен (angular не самый лучший).Если .mat-active является тегом, подобным .mat-option, тогда вы захотите сделать
:not(mat-active)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...