2015-09-22 4 views
0
it('it should click each of the title elements to reveal its content', function(){ 
     element(by.css('.cardtitle')).click(); 
    }); 

У меня есть приведенные выше строки, которые работают правильно и щелкните первый элемент из серии 3 с этим классом. Мне нужно щелкнуть все 3 элемента с этим классом с помощью транспортира, как мне это сделать? (все находятся на одной странице, очень просто)Как нажимать один и тот же классифицированный элемент каждый раз на странице с помощью транспортира

для чего стоит его появление, где могут быть 2 или 5 элементов, чтобы щелкнуть все, разделяя один класс.

спасибо!

+0

Имеет ли значение количество кликов? –

ответ

2

Перебор элементов и нажмите их одну за другой, используя each() функции, доступной в транспортире. Вот как -

element.all(by.css('.cardtitle')).each(function(elem){ 
    elem.click(); 
}); 

Если на все, что вы хотите, чтобы нажать элементы последовательно, то вам нужно ждать, пока щелчок не будет завершен решением его обещания. Вот пример -

element.all(by.css('.cardtitle')).each(function(elem){ 
    elem.click().then(function(){ 
     //If you want perform some operation after click, you can do it here. 
     browser.sleep(1000); 
    }); 
}); 

Надеюсь, что это поможет.

+0

как этот метод наиболее, особенно для повторения этого, когда я не знаю точно, сколько элементов находится на странице. должен быть осторожен, чтобы не забыть элемент '' .all''' after – imnothardcore

2

Вы можете получить коллекцию предметов и щелкнуть их по отдельности.

например.

var cards = element.all(by.css('.cardtitle')); 
expect(cards.length).toBe(3); 
cards.get(0).click(); 
cards.get(1).click(); 
cards.get(2).click(); 
Смежные вопросы