У меня небольшая проблема с тестированием невидимой ReCaptcha на форме с помощью Laravel Dusk. Пакет, связанный с этой ситуацией Невидимая рекапча от Albertcht
У меня есть этот метод внутри CreatesApplication.php
файл в /tests
protected function withoutRecaptcha() : void
{
InvisibleReCaptcha::shouldReceive("verifyRequest")
->andReturnTrue();
InvisibleReCaptcha::shouldReceive("verifyResponse")
->once()
->andReturnTrue();
}
Это хорошо работает для теста функций, потому что мне нужно только нажать API, и я могу игнорировать g-recaptcha-response
вход из почтового запроса.
Но если я хочу протестировать саму форму, используя систему тестирования браузера, такую как Laravel Dusk, конечно, этого недостаточно.
Мой текущий метод сумерек следующий.
public function a_guest_can_fill_the_registration_form()
{
$this->withoutRecaptcha();
$this->browse(function (Browser $browser) {
$browser->maximize()
->visit(new Register())
->assertPresent("input[name=g-recaptcha-response]")
->fillFormWithRandomData()
->submitForm()
->waitForReload()
->assertVisible(".alert.alert-success");
});
}
Здесь все просто, я вызываю форму регистрации, заполняю данные, отправляю их и проверяю, нет ли предупреждения. В настоящее время это не работает, и я получаю эту ошибку:
There was 1 failure:
1) Tests\Browser\RegisterTest::a_guest_can_fill_the_registration_form
Element [body input[name=g-recaptcha-response]] is not present.
Failed asserting that false is true.
/app/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:806
/app/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67
Таким образом, проблема ясна: во время теста вход ReCaptcha не отображается, поэтому невозможно поразить его или даже не настоящие Это
Есть ли способ визуализации поддельной ReCaptcha, чтобы он работал с Laravel Dusk?
Спасибо
Задача ещё не решена.
Других решений пока нет …