Метод click
Метод click класса KernelBrowser используется в функциональных тестах Symfony для имитации клика пользователя по ссылке или кнопке. Он принимает текст ссылки или CSS-селектор элемента, находит его в текущем DOM-дереве и выполняет переход по связанному URL. Первым параметром передаётся искомая строка или селектор, а вторым - необязательный ассоциативный массив параметров запроса.
Синтаксис
$client->click($selector, $parameters = []);
Пример
Давайте создадим тест, который находит ссылку с текстом 'article' и кликает по ней:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testClickLink(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$link = $crawler->selectLink('article')->link();
$client->click($link);
$this->assertResponseIsSuccessful();
}
}
?>
Результат выполнения теста:
"OK (1 test, 1 assertion)"
Пример
Давайте кликнем по кнопке формы, используя CSS-селектор:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testClickButton(): void
{
$client = static::createClient();
$crawler = $client->request('GET', '/article');
$button = $crawler->filter('button.submit-btn')->first();
$client->click($button);
$this->assertResponseIsSuccessful();
}
}
?>
Результат выполнения теста:
"OK (1 test, 1 assertion)"
Смотрите также
-
класс
KernelBrowser,
который представляет собой тестовый браузер -
метод
clickLink,
который кликает по ссылке по её тексту -
метод
submit,
который отправляет форму -
метод
request,
который выполняет HTTP-запрос