How to add a new page object?
Sylius uses a solution inspired by SensioLabs/PageObjectExtension
, which provides an infrastructure to create
pages that encapsulates all the user interface manipulation in page objects.
To create a new page object it is needed to add a service.
The simplest Symfony-based page looks like:
<?php
declare(strict_types=1);
namespace App\Tests\Behat\Page\Frontend;
use FriendsOfBehat\PageObjectExtension\Page\SymfonyPage;
class LoginPage extends SymfonyPage
{
public function getRouteName(): string
{
return 'app_frontend_security_login';
}
}
There are some boilerplates for common pages, which you may use. The available parents are FriendsOfBehat\PageObjectExtension\Page\Page
and FriendsOfBehat\PageObjectExtension\Page\SymfonyPage
. It is not required for a page to extend any class as
pages are POPOs (Plain Old PHP Objects).