← Python мануфактура

Конспект і таймкоди

0:00

`for` для list і set

for item in collection по черзі підставляє кожен елемент у змінну циклу. Це типовий спосіб обійти Playwright locators, Selenium elements, test cases або users. List зберігає порядок і дублікати; set прибирає дублікати, але його порядок не слід використовувати як частину очікуваної поведінки тесту.

2:01

Нумерація через `enumerate`

enumerate(browsers, start=1) одночасно повертає людський номер і значення. Це простіше за ручний counter і корисне для diagnostic messages: можна вказати, на якому саме елементі впала перевірка. Без start=1 індексація починається з нуля.

3:30

Обхід dictionary

headers.items() дає пари key/value, headers.keys() — лише keys, headers.values() — лише values. Вибір залежить від перевірки: для друку повного header потрібні обидві частини, а для валідації набору полів достатньо keys.

5:30

`while` і обмежені retries

while повторює блок, поки умова truthy. У retry-прикладі є attempt, max_attempts, пауза та обов’язкове attempt += 1; без оновлення counter цикл зависне. Для реальних UI-тестів framework-native waits кращі за ручний polling, але bounded while може бути корисним для контрольованої перевірки backend state.

7:31

Практика на об’єктах

Домашня частина — пройтися по list of objects, додати enumerate, перевірити поля всередині циклу та дослідити break/continue. Failure message має зберігати контекст проблемного елемента, інакше цикл ускладнить діагностику.