Удалите некоторые значения массива для утверждения (транспортир)

1

Есть ли способ отменить или удалить случайные или несколько значений, возвращаемых массивом 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" и "Ярлыки клавиш" динамически через мой код из массива, возвращаемого так, чтобы мое утверждение прошло?

Теги:
arrays
automation
protractor
gulp-protractor

2 ответа

2
Лучший ответ

Вы можете использовать метод 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'));
0

Лучший способ избежать for циклы each. См. Документацию:

http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.each

Ещё вопросы

Сообщество Overcoder
Наверх
Меню