2013-06-05 21 views
0


我沒有找到一種方法將「按鈕」或「輸入」字段添加到Symfony中的爬蟲用於測試。 我這樣做:如何在Symfony中添加XML內容以形成

$crawler = $this->client->request('GET', ''); 
$document = new \DOMDocument(); 
$document->loadXml('<button type="submit" name="_submit" href="#">Create</button >'); 
$nodeList = $document->getElementsByTagName('button'); 
$node = $document->getElementsByTagName('button')->item(0); 
$crawler->addNode($node, $form); 
var_dump($crawler->filter('button[name="_submit"]')->text()); //Return Create Logic 

但是當我試圖把我的形式,我已經有了:

$form = $crawler->selectButton('_submit')->form(array(
               'login-input' => 'XXXXXX', 
               'pass-input' => 'XXXXX', 
              )); 

這不幹活了:

LogicException:所選節點沒有表單祖先。

我沒有任何按鈕或輸入字段,因爲它是一個JavaScript提交。
有人有什麼想法嗎?


編輯
我找到了一個另一種方式: 我直接發送Ajax請求,和我有同樣的效果 @redbirdo,你的解決方案並沒有爲我工作,而不是我想我的問題開始什麼

回答

1

您可以使用客戶端這樣的模擬測試的POST請求:

$client->request(
    'POST', 
    '/submit', 
    array('name' => 'Fabien'), 
    array('photo' => $photo) 
); 

有在有Working with the Test Client下更多的例子Symfony手冊的測試部分。

編輯:

第二個參數應該是頁的相對或絕對URL被測試。這裏的'/ submit'只是一個symfony的例子。

+0

我試過這個: '$ this-> client-> request('POST','/ submit',array('login-input'=>'XXXXX','pass-input'=>'' XXXX '));'但不起作用,我有一個404錯誤頁面 – Babou34090

+1

@babou看到編輯。 – redbirdo

相關問題