puth/laravel is a Laravel package for puth laravel client.
It currently has 1 GitHub stars and 2.982 downloads on Packagist (latest version 0.10.3).
Install it with composer require puth/laravel.
Discover more Laravel packages by puth
or browse all Laravel packages to compare alternatives.
Last updated
composer require --dev puth/laravel
After installing the Puth package, run the puth:install Artisan command.
php artisan puth:install
You can find the configuration file for this package in config/puth.php.
use Tests\PuthTestCase;
use Puth\Laravel\Browser;
class ExampleBrowserTest extends PuthTestCase
{
function test_visit_website()
{
$this->browse(function (Browser $browser) {
$browser->visit('https://playground.puth.dev')
->assertSee('Puth');
});
}
}
The puth/laravel package provides a full replacement for Dusk.
Another difference is that puth/laravel does not start the browser process. For that you need to run puth (e.g. in
Docker) and point the client to the puth instance. puth/laravel once contained code to launch the puth process
but I don't think enough people would use this feature so I removed it.
Some exception messages changed, mostly the ones thrown by assert functions, e.g. instead of Element [body #not-existing-element] not found you will see Waited 200ms for selector [body body #not-existing-element] when calling $browser->assertVisible('body #not-existing-element').
$this->actingAs(), your browser requests will also be authenticated as that user.PuthEnablePortal trait:use Puth\Laravel\PuthEnablePortal;
use Tests\PuthTestCase;
class ExampleBrowserTest extends PuthTestCase
{
use PuthEnablePortal;
}
Values returned by getContextOptions() can still override the portal or detour context option individually.
$browser->keys(): This method now uses the puppeteer keymap (instead of the php-webdriver keymap) is used (when using modifier keys you can only type/press american keyboard layout keys)
$browser->typeInDialog(selector, value): Use the accept method instead which takes a value $browser->acceptDialog(value)
console logs are different from Dusk console logs. They now contain more information but the underlying json structure changed.
$this->driver->executeScript() becomes $this->evaluate()
$browser->moveMouse($xOffset, $yOffset): Puppeteer only simulates a mouse but doesn't expose the internal tracking state so we can't move the mouse by an offset