如何在 PHPUnit (Symfony2) 中点击一个按钮

How to click on a button in PHPUnit (Symfony2)

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

我试过像那样进行正常点击:

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

click() 函数似乎采用 Link 对象而不是 Crawler对象.

我该怎么做?

根据文档,它说要转换为 link 对象,您可以执行以下操作

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

虽然我没有使用过它,所以我不确定它是否可以与按钮一起使用。

我假设你使用 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);