如何在PHPUnit(Symfony2)中单击按钮

时间:2015-03-19 15:47:53

标签: symfony button click phpunit functional-testing

您好,我正在编写功能测试,我想知道如何在按钮上执行简单的点击,我有一个隐藏的表单,点击按钮后显示

我尝试像这样进行正常点击:

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

但似乎 click()函数采用链接对象而不是 Crawler 对象。

我该怎么办?

2 个答案:

答案 0 :(得分:5)

我假设您使用JS来显示隐藏的表单。 这不起作用,因为爬虫不支持JS,如果你想测试表单的点击和可见性,你最好查找CasperJs或其他一些爬虫。

Symfony2 Functional Testing - Click on elements with jQuery interaction

否则,如果测试表单的提交是您想要实现的,那么您可以使用:

$form = $crawler->filter('button#idofyourbutton')->form(array(
            'firstname' => 'Blabla',
            'lastname' => 'Blabla',
            'address' => 'BlablaBlablaBlablaBlabla',
            'zipcode' => '302404',
            'phone' => '30030130269'
        ),'POST');

        $client->submit($form);

答案 1 :(得分:1)

从它说要转换为链接对象的文档中,您将执行以下操作

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

我还没有用过这个,所以我不确定它是否能用于按钮。