2

I четыре <select> с ng-options используется на моей странице, которая будет извлекать различную информацию. Все они, как это, за исключением различных связывания данных, имен и идентификаторов:Испытание утяжелителей угловых ng-опций

<div class="col-sm-3"> 
    <label class="control-label" for="lawyer">Lawyer</label> 
    <select class="form-control" id="lawyer" name="lawyer" ng-model="model.lawyerUuid" required 
     ng-options="lawyer.uuid as lawyer.name for lawyer in model.lawyers"> 
    </select> 
</div> 

Как я могу проверить это в транспортире, чтобы я мог убедиться, что только х (например, 2) возвращали адвокаты?

Так как я использую ng-options, обретение ng-repeat не буду работать, и если я ищу с нижеследующим, я буду получать все четыре <selects> на моей странице, а не только выше (один, так что если все они вернутся 2 элементов I будет иметь count() из 8):

element.all(by.css('select option')) 

есть ли способ, чтобы получить все элементы, которые имеют родителя с некоторым указанным идентификатором?

ответ

1
driver.findElements(protractor.By.css('#lawyer > option')).then(function (lawyers) { 
    expect(lawyers.length).toBe(2); 
}); 

Это похоже на нахождение его повторения, но все еще может работать

+0

Это не будет работать, так как это будет только получить родителя (например, адвокат 'select'), но не это дети (т.е. опция' '). – amb

+1

возможно найти его css тогда? Что-то вроде css ('# lawyer> option') –

+0

да вот оно; Забыл об этом :) – amb

0

Так что я нашел это решение, переделывая XPath:

expect(element.all(by.xpath('//*[@id="lawyer"]/child::node()')).count()).toBe(2); 

Есть хороший один?