Мне интересно, есть ли способ проверить, где на странице установлен фокус, используя Laravel Dusk. У меня есть форма, первый элемент которой всегда должен получать фокус при загрузке страницы. Я не вижу ничего очевидного в документации Dusk для этого. Я использую Ларавель 5.5.
Фокус тестирования в Laravel Dusk
Ответы (1)
Использовать это:
$element = $browser->element($selector);
$this->assertTrue($browser->driver->switchTo()->activeElement()->equals($element));
ОБНОВЛЕНИЕ: в Dusk 3.0.8 вы можете использовать assertFocused()
и assertNotFocused()
.
person
Jonas Staudenmeir
schedule
10.04.2018
К сожалению, похоже, что assertTrue не является допустимым утверждением, по крайней мере, в версии 5.5. laravel.com/docs/5.5/dusk#available-assertions
- person Amy Lashley; 11.04.2018
assertTrue()
является частью PHPUnit, а не Dusk. Вы пробовали?
- person Jonas Staudenmeir; 11.04.2018
Я вижу, что документация для Dusk действительно не впечатляет. Как человек, который плохо знаком с автоматическим тестированием, я не вижу четкой информации о том, как работает Dusk и как я могу использовать с ним нативные методы PHPUnit. У меня есть слегка измененная версия вашего кода, которая работает, но не работает. Так что я буду ковыряться в нем, пока не заработаю. Это также может быть связано с тем, что я использую Vue.js для установки фокуса.
- person Amy Lashley; 11.04.2018
Это всегда уязвимо для проблем со временем. Попробуйте что-то вроде
sleep(1);
перед проверкой фокуса.
- person Jonas Staudenmeir; 11.04.2018
В Dusk 3.0.8 вы можете использовать assertFocused() и assertNotFocused().
- person Jonas Staudenmeir; 01.05.2018