Транспортир: by.model не может найти элемент внутри пользовательской директивы - PullRequest
0 голосов
/ 29 июня 2018

У меня есть этот проект AngularJS, в котором у меня сложный HTML-макет.

<div id="ngView" class="container-fluid">
    <input type="text" ng-model="model.test"></input>
    <div ng-view></div>
    <br><br>
</div>

model.test успешно найден элементом (by.model ('model.test')).

Внутри ng-view загружаются разные компоненты. Один из этих компонентов загружает другую директиву html, такую:

<div class="trans-edit" ng-if="$root.editing"> 
    <edit-task task="$root.task " editando="$root.editing " 
     reload="$root.getData" class="trans-edit">
    </edit-task> 
</div>

Результат которого:

<edit-task task="$root.task " editing="$root.editing " reload="$root.getData" class="trans-edit ng-isolate-scope">
<div class="modal-header">
    <div class="row">
        <div class="col-md-6 col-xs-12">
            <h3 class="modal-title ng-binding">Create task</h3>
        </div>
        <div class="col-md-6 col-xs-12">
            <input type="text" ng-model="task.desTask" class="form-control input-lg ng-pristine ng-untouched ng-valid">
        </div>
        ... it goes on .... </div> 

Я не могу заставить element(by.model('task.desTask')) работать, даже после ожидания угла или установки времени ожидания. Транспортир всегда терпит неудачу:

Ошибка: не найден элемент с помощью локатора: by.model ("task.desTask").

Я новичок, все еще изучающий тестирование e2e, но это первый тест в очень длинный процесс тестирования, который не удался, и я не могу найти информацию о вопрос о директивах и транспортире.

Я попытался добавить идентификатор к элементу внутри пользовательской директивы, и он не может быть найден . Похоже, что система закрыта для всего под пользовательским тегом HTML <edit-task></edit-task>.

Любая помощь была бы великолепна, использование by.model было бы крайне важно для этого проекта.

1 Ответ

0 голосов
/ 02 июля 2018

Получается ошибка angularjs в проекте, из-за которой директива не отображается правильно, поэтому element (by.model ()) не будет работать. Спасибо всем за помощь.

...