Есть проблема с функционалом fixed-панели с экшенами. Выглядит она в своем летучем виде как на скрине
С ней есть 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