Транспортир не может найти Угловой указатель даты - PullRequest
0 голосов
/ 15 февраля 2019

У меня сложный сборщик дат, и я не могу его поймать.Это выглядит так:

Это то, что я пробовал:

element(by.id('submissionDate-calendar')).sendKeys('28.01.2019');

Это фактический HTML-код:

<input type="text" name="submissionDate" ng-required="$ctrl.isRequired()" ng-disabled="$ctrl.ngDisabled" ng-model="$ctrl.editableDate" ng-click="$ctrl.toggleVisibility()" id="submissionDate" class="form-control ng-pristine ng-empty ng-invalid ng-invalid-required ng-valid-min-date ng-valid-max-date ng-valid-weekday ng-valid-holidays ng-touched"
  ng-readonly="!$ctrl.ngDisabled" required="required" readonly="readonly" style="">

Но я получаю ошибку , которая говорит:

элемент не найден

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

browser.waitForAngular

ProtractorBrowser.prototype.waitForAngular предписывает веб-драйверу дождаться окончания рендеринга Angular и отсутствия ожидающих вызовов $http или $timeout, прежде чем продолжить, и вам нужно сохранить это enabled .

Теперь, поскольку элемент является элементом Angular , чтобы найти его, вам нужно вызвать официант для элемента чтобы быть активным , и вы можете использовать любое из следующих решений:

  • cssSelector :

    element(by.css('input.form-control.ng-valid-min-date.ng-valid-max-date.ng-valid-weekday.ng-valid-holidays#submissionDate')).sendKeys('28.01.2019');
    
  • xpath :

    element(by.xpath('//input[@class="form-control ng-pristine ng-empty ng-invalid ng-invalid-required ng-valid-min-date ng-valid-max-date ng-valid-weekday ng-valid-holidays ng-touched" and @id="submissionDate"]')).sendKeys('28.01.2019');
    
0 голосов
/ 15 февраля 2019

звучит так, как будто вы должны использовать element(by.id('submissionDate')), поскольку идентификатор в html-файле выглядит следующим образом.
Если каким-то образом by.id не работает, вы можете попробовать с помощью css:

element(by.css('.input-group.datepicker.hide-day.ng-scope input')).sendKeys('28.01.2019');
...