Это зависит от того, как вы» re получение данных в/из входов в директиве. Тем не менее, во всех случаях вы можете цепи вместе element(<locator>)
звонки искать sub-elements директивы:
var directive = element(by.model('data.person'));
var subElement = directive.element(by.<something>);
Если вы используете ng-model
в самой директиве по каждому из входов, вы можете сделать что-то вроде:
var directive = element(by.model('data.person'));
// Assuming the inputs have attributes like `ng-model="firstname"` in the directive template
var firstnameInput = directive.element(by.model('firstname'));
var lastnameInput = directive.element(by.model('lastname'));
var usernameInput = directive.element(by.model('surnamname'));
, а затем при каждом вызове sendKeys
firstnameInput.sendKeys('Peter');
secondnameInput.sendKeys('Piper');
usernameInput.sendKeys('PickledPumpernickle');
Если вы не используете ng-model
в Директива шаблон, вы можете использовать другие локаторы, чтобы найти вложенные элементы, вместе с get
если потребности, и зависит от того, что они находятся в DOM
var inputs = directive.element(by.css('input'));
var firstnameInput = inputs.get(0);
var secondnameInput = inputs.get(1);
var usernameInput = inputs.get(2);
Однако я подозреваю, ни один из вышеперечисленных будет работать, если у вас есть replace: true
, указанный в директиве, так как он зависит от исходного элемента, с атрибутом ng-model
, находящимся в DOM.
Спасибо за ваш ответ. Это выглядит многообещающим, и я отчитаюсь, как только проверю его. – TrazeK