Метод getCrawler
Метод getCrawler класса KernelBrowser возвращает объект Crawler,
который содержит DOM-дерево последнего ответа сервера.
Через этот объект можно искать HTML-элементы по CSS-селекторам и извлекать их содержимое.
Метод не принимает параметров и работает с текущим ответом,
который хранится внутри тестового клиента.
Обычно getCrawler вызывают после методов request или click,
когда в клиенте уже сформирован ответ. Crawler удобно использовать
в функциональных тестах Symfony для проверки структуры и текста страницы.
Синтаксис
public function getCrawler(): Crawler
Пример
Давайте создадим тестовый клиент, выполним запрос к главной странице
и получим Crawler, а затем найдём заголовок h1:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/');
$crawler = $client->getCrawler();
$h1 = $crawler->filter('h1')->text();
echo $h1;
}
}
?>
Результат выполнения кода:
"article"
Пример
Давайте посчитаем количество ссылок a на странице
и выведем их адреса:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testLinks(): void
{
$client = static::createClient();
$client->request('GET', '/');
$crawler = $client->getCrawler();
$count = $crawler->filter('a')->count();
echo $count;
}
}
?>
Результат выполнения кода:
3
Смотрите также
-
класс
KernelBrowser,
который эмулирует браузер в функциональных тестах -
метод
request,
который выполняет HTTP-запрос к приложению -
метод
getResponse,
который возвращает объект ответа сервера -
метод
click,
который кликает по ссылке в полученном ответе