Задать вопрос
@deus_mobius

Стабильность Fixed панелей в Playwright тестах?

Есть проблема с функционалом fixed-панели с экшенами. Выглядит она в своем летучем виде как на скрине

692d67b1ba8c2187312608.jpeg

С ней есть 2 проблемы:

1) в —headed режиме запуска тестов её не видно визуально, при этом playwright её экспектит и кликает
2) Иногда он почему-то считает кнопку не кликабельной. Но после неудачного клика, когда дальше по коду у него должна была появится модалка со следующими полями, он не падает, не ругается, а просто как будто бы виснет. Сначала грешил на конкретную кнопку, но в среднем каждая из этой панели может падать. Просто у них по статистике разная стабильность. Честно говоря, вообще 0 идей. Вьюпорт менять пробовал, не решило ни одной проблемы. Использовал вот такую функцию для анализа

export async function isElementClickable(
    element: Locator | Promise<Locator | null> | null,
    timeout = 5000
): Promise<boolean> {
    try {
        const resolved = await element;
        if (!resolved) {
            console.log('Element is not resolved');
            return false;
        }

        await resolved.waitFor({ state: "visible", timeout });

        if (!(await resolved.isEnabled())) {
            console.log('Element is not enabled');
            return false;
        }

        const className = await resolved.getAttribute("class");
        if (className) {
            const lowered = className.toLowerCase();
            if (
                lowered.includes("disabled")
            ) {
                console.log('Element is disabled');
                return false;
            }
        }

        const box = await resolved.boundingBox();
        if (!box) {
            console.log('Element is not visible');
            return false;
        }

        await resolved.hover({ timeout });

        console.log("Element is clickable");
        return true;
    } catch {
        console.log("Element is not clickable");
        return false;
    }
}


Вываливается именно в Element is not clickable
  • Вопрос задан
  • 39 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Skillbox
    Автоматизированное тестирование на Python
    9 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы