Метод assertSelectorExists
Метод assertSelectorExists относится к трейту
WebTestCase и проверяет, что на текущей странице
присутствует хотя бы один элемент, соответствующий
CSS-селектору. Первым параметром передаётся строка
с селектором. Если элемент не найден, тест падает
с исключением AssertionFailedError. Метод удобен
для проверки, что страница отрендерила нужный блок,
кнопку, форму или ссылку.
Синтаксис
assertSelectorExists(string $selector): void
Пример
Давайте создадим тест, который открывает страницу
и проверяет наличие заголовка h1:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$this->assertSelectorExists('h1');
}
}
?>
Если на странице есть тег h1, тест завершится успешно.
Иначе будет выброшено исключение с сообщением о том,
что селектор не найден.
Пример
Давайте проверим наличие элемента с конкретным
CSS-классом .article-item:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testArticleList(): void
{
$client = static::createClient();
$client->request('GET', '/articles');
$this->assertSelectorExists('.article-item');
}
}
?>
Метод поддерживает любые CSS-селекторы: по тегу,
классу, идентификатору, атрибуту и их комбинации.
Например, '#main', 'div.content'
или 'a[href="/user"]'.
Пример
Давайте проверим наличие ссылки с определённым
атрибутом href на странице:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testUserLink(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$this->assertSelectorExists('a[href="/user"]');
}
}
?>
Если ссылка с таким адресом присутствует в HTML-ответе, тест пройдёт успешно.
Смотрите также
-
метод
assertSelectorNotExists,
который проверяет отсутствие элемента по селектору -
метод
assertSelectorTextContains,
который проверяет, что текст элемента содержит подстроку -
метод
assertSelectorCount,
который проверяет количество элементов по селектору -
класс
WebTestCase,
который предоставляет методы для функциональных тестов