Как нажать на кнопку в PHPUnit (Symfony2)


Привет, я пишу функциональный тест и хочу знать, как выполнить простое нажатие на кнопку, у меня есть скрытая форма, которая отображается после нажатия кнопки

Я попытался сделать обычный щелчок вот так :

$button  = $crawler->filter('button:contains("Add")');
$crawler = $client->click($button);

Но, похоже, функция click() принимает объект Link, а не объект искателя.

Как я могу сделать что-то подобное?

Author: Yassine Elhamraoui, 2015-03-19

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);
 4
Author: Nawfal Serrar, 2017-05-23 12:17:34

Из документов, в которых говорится, что для преобразования в объект ссылки вы должны выполнить следующее

$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);

Я еще не использовал это, поэтому я не уверен, будет ли это работать с кнопкой.

 1
Author: qooplmao, 2015-03-19 16:15:53