РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1100 of 1361 menu

Метод 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,
    который кликает по ссылке в полученном ответе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить