Метод, который я попытался бы решить для этой проблемы, состоял бы в том, чтобы преобразовать ElementArrayFinder
в массив строк, используя .getText()
.Я бы предположил, что это сохранило бы порядок, но не могу сказать наверняка.
element.all(by.css('ul.sbsb_b')).getText().then(function(allOptions){
console.log(typeof allOptions)
console.log(Array.isArray(allOptions))
}
Для предварительной проверки можно использовать два подхода, которые не требуют какого-либо определенного порядка извлекаемого массива имен состояний.
Вы можете отсортировать массив, а затем ожидать, что они оба будут равны.
element.all(by.css('ul.sbsb_b')).getText().then(function(allOptions){
expect(allOptions.sort()).toEqual(expectedStates);
}
Или вы можете проверить, что созданный вами массив имеет ту же длину, что и ожидаемый массив состояний, а затем убедиться, что каждое ожидаемое состояние появляется хотя бы один раз в созданном массиве
element.all(by.css('ul.sbsb_b')).getText().then(function(allOptions){
expect(allOptions.length).toBe(expectedStates.length);
for(let i = 0; i < expectedStates.length; count++){
expect(allOptions).toContain(expectedStates[i]);
}
}