Typescript. В массиве первым выбирается значение 0

Пишу код для выбора элемента выпадающего списка по локатору с использованием Playwright. Для этого задаю массив элементов, которые содержатся в нем:

const arr = ["Да", "Нет", "Наверное"];

Далее в цикле выполняю следующие действия:

  1. Нажимаю на выпадающий список
  2. Нажимаю на элемент
  3. Проверяю что значение в выпадающем списке соответствует тому, что было выбрано в п.2
for (const element1 in arr) {
  //Здесь клик на локатор xpath по типу //div[text()='${element1}']
}

Проблема в том что при запуске теста Playwright почему то ищет локатор //div[text()='0']


Ответы (1 шт):

Автор решения: Швеев Алексей

Дело в том, что массивы в javascript (и в частности в typescript) являются объектами. Т. е.

arr = ["a", "b", "c"]

эквивалентно

arr = {
  0: "a",
  1: "b",
  2: "c"
}

key in object проходит по всем ключам объекта. Если же вам надо пройтись по значениям, то можно использовать of:

for (let i in arr) {} // i принимает [0, 1, 2]
for (let v of arr) {} // i принимает ["a", "b", "c"]
→ Ссылка