Есть ли способ отменить или удалить случайные или несколько значений, возвращаемых массивом element.all?
Сценарий, который я пытаюсь автоматизировать, - проверить, что слово "HTML" должно присутствовать в каждой строке, возвращенной из списка массива.
Я использовал w3Schools в качестве фиктивного тестового веб-сайта для пробного сценария, ниже приведен код, который терпит неудачу из-за утверждения.
describe('Searching for word HTML', function() {
var array=[];
var counter=0;
it('Beginning of the test', function() {
browser.ignoreSynchronization = true;
browser.get('https://www.w3schools.com/html/default.asp');
browser.sleep(5000).then(function(){});
var lines = element.all(by.css('#leftmenuinnerinner>a'));
lines.count().then(function(counting){
console.log("There are total "+counting+" links");
counter=counter+counting;
return counting;
})
lines.getText().then(function(text){
console.log("Values:::: "+text);
for(var k=0;k<text.length;k++){
expect(text[k]).toContain('HTML');
}
})
})
})
Я знаю, что могу использовать значения xpath и повторять цикл только из 76 значений, но я пытаюсь с помощью подхода css selector и мне нужно строго получить весь список значений, так что есть способ, которым я мог бы обрезать или отменить "HTTP-сообщения" значений, "Методы HTTP", "Конвертер PX в EM" и "Ярлыки клавиш" динамически через мой код из массива, возвращаемого так, чтобы мое утверждение прошло?
Вы можете использовать метод filter
только для хранения элементов, содержащих требуемый текст. - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter
lines.filter(function(elem, index) {
return elem.getText().then(function(text) {
return text.includes('HTML');
});
})
Или вы можете использовать локатор cssContainingText
чтобы получить нужные элементы. - http://www.protractortest.org/#/api?view=ProtractorBy.prototype.cssСодержаниеТекст
var lines = element.all(by.cssContainingText('#leftmenuinnerinner>a','HTML'));
Лучший способ избежать for
циклы each
. См. Документацию:
http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.each