如何在 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);
你好,我正在写一个功能测试,我想知道如何执行一个简单的按钮点击,我有一个显示在按钮后面的隐藏表单点击
我试过像那样进行正常点击:
$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);