2015-06-16 2 views
2

Я пишу несколько функциональных тестов и я хочу, чтобы проверить, что Изменить ссылку существует на странице, если пользователь вошел в системуSymfony Crawler: как проверить, что ссылку на конкретную страницу существует

Ссылку. это простой <a href="/profile/22/edit">Edit</a>.

Как я могу отфильтровать его с помощью компонента Crawler Symfony?

Одно из решений заключается в следующем:

$this->assertEquals(1, $crawler->filter('html:contains("<a href="/profile/22/edit">")')->count()); 

Но я хотел бы использовать, вместо этого, выбор тегов, так как я могу это сделать?

ответ

2

Вы можете использовать Crawler :: filterXPath() для проверки наличия или отсутствия элементов html, соответствующих всем критериям. Чтобы проверить наличие ссылки, я предпочитаю использовать идентификатор элемента, поскольку он, скорее всего, останется постоянным. Например, если вы измените ссылку следующим образом:

<a id="edit-profile-link" href="/profile/22/edit">Edit</a> 

Затем вы можете проверить связь существует, как это:

$node = $crawler->filterXPath('//a[@id="edit-profile-link"]'); 
$this->assertTrue($node->count() == 1), "Edit profile link exists"); 

Here некоторые хорошие примеры рода фильтров, которые можно использовать с помощью XPath ,

+0

Отлично, он работает очень хорошо! Благодаря! – Aerendir

Смежные вопросы