您好,我正在编写功能测试,我想知道如何在按钮上执行简单的点击,我有一个隐藏的表单,点击按钮后显示
我尝试像这样进行正常点击:
$button = $crawler->filter('button:contains("Add")');
$crawler = $client->click($button);
但似乎 click()函数采用链接对象而不是 Crawler 对象。
我该怎么办?
答案 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);
我还没有用过这个,所以我不确定它是否能用于按钮。