Я использую TestCafe для тестирования приложения Vue, которое использует панель навигации Vuetify. Когда ящик открыт, он создает серый оверлей поверх остальной части приложения. Я смогу щелкнуть эту накладку, чтобы закрыть ящик. Это не работает; ящик остается открытым, и накладка не уходит.
Однако, если я добавлю .debug()
, разблокирую страницу и щелкну вручную, оверлей и ящик будут закрыты, как и ожидалось, и можно будет продолжить остальную часть теста.
Небольшой быстрый тест ниже демонстрирует проблему. Он использует пример из документации Vuetify в качестве приспособления, открывает ящик, щелкает оверлей и ожидает, что оверлей больше не существует. Это не удастся, потому что наложение остается видимым после щелчка.
import { Selector } from 'testcafe';
fixture `Vuetify navigation drawer`
.page `https://vuetifyjs.com/en/components/navigation-drawers`
test('is closed when clicking the overlay', async t => {
await t
.click('a[href="#temporary"] + div + div div.v-sheet button')
.click('div.v-overlay')
//.debug(); // unlock & manual click on overlay will result in a pass
.expect(Selector('div.v-overlay').exists).eql(false);
});
Эта тема казалась многообещающей, но возникшая ошибка была исправлена 2 года назад, и предлагаемый обходной путь добавления .hover()
не работает.
Я пробовал Firefox 66 и Chrome 72 на MacOS 10.14 с testcafe v1.1.0.
Есть идеи, почему щелчок по оверлею не работает и что я могу сделать, чтобы это исправить?