Как нажать на кнопку в PHPUnit (Symfony2)
Привет, я пишу функциональный тест и хочу знать, как выполнить простое нажатие на кнопку, у меня есть скрытая форма, которая отображается после нажатия кнопки
Я попытался сделать обычный щелчок вот так :
$button = $crawler->filter('button:contains("Add")');
$crawler = $client->click($button);
Но, похоже, функция click() принимает объект Link, а не объект искателя.
Как я могу сделать что-то подобное?
2 answers
Я предполагаю, что вы используете JS, чтобы показать свою скрытую форму. Это не сработает, так как искатель не поддерживает JS, вам лучше поискать CasperJS или какой-либо другой искатель, если вы хотите проверить щелчок и видимость вашей формы.
Функциональное тестирование Symfony2 - Щелчок по элементам с взаимодействием jQuery
В противном случае, если вы хотите проверить отправку формы, вы можете использовать:
$form = $crawler->filter('button#idofyourbutton')->form(array(
'firstname' => 'Blabla',
'lastname' => 'Blabla',
'address' => 'BlablaBlablaBlablaBlabla',
'zipcode' => '302404',
'phone' => '30030130269'
),'POST');
$client->submit($form);
Из документов, в которых говорится, что для преобразования в объект ссылки вы должны выполнить следующее
$button = $crawler
->filter('button:contains("Add")') // find all buttons with the text "Add"
->eq(0) // select the first button in the list
->link() // and click it
;
А затем вы можете нажать на него, как и раньше..
$crawler = $client->click($button);
Я еще не использовал это, поэтому я не уверен, будет ли это работать с кнопкой.