Я использую 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.
Есть идеи, почему нажатие наложения не работает и что я могу сделать, чтобы это исправить?