テスト用に Symfony のクローラーのフォームに「ボタン」または「入力」フィールドを追加する方法が見つかりません。私はこれをやっています:
$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と同じ効果があります.あなたの解決策は私にとってはうまくいきません.