2016-11-07 3 views
1

Я делаю функциональное тестирование, и я получаю ошибкуSymfony2 InvalidArgumentException: Список текущего узла пуст

InvalidArgumentException: Список текущего узла пуст

Это мой код

public function testThis(){ 
    $requestContent = [ 
     'val1' => '324343', 
     'valname' => '"Benjamin"', 
     'valLast' => '"A"', 
     'valnum' => '44343', 
     'hndval1' => '0000', 
     'hdnval2' => '0000', 
     'hndval3' => '1111', 
     'hndref' => '"ThisIsAtest"', 
     'hdnMessage' => '"I am a message"' 

    ]; 

    $crawler = $this->client->request('GET', '/'); 
    $submitButton = $crawler->selectButton('btnSubmit'); 
    $form = $submitButton->form($requestContent); 

    print_r($form); 
    $this->client->followRedirects(true); 
    $crawler = $this->client->submit($form); 

    $response = $this->client->getResponse(); 
    $request = $this->client->getRequest(); 
    print_r($crawler->html()); 
    $this->assertRegExp('/\/nextPage', $request->getUri()); 
    print_r($request->getUri()); 
    $a = $crawler->filter('input[name="pageName"]'); 

    $this->assertContains(
     "True", 
     $a->attr('value') 
    ); 
} 

Я думаю, что он получает сообщение об ошибке в этом:

$ form = $ submitButton-> form ($ requestContent);

Обратите внимание, что значения $ requestContent поступают из скрытого типа ввода, которые находятся внутри тега формы.

ответ

0

Вы не отправил свой HTML, так что теперь я считать ваш HTML, такие как:

<html> 
    <form method='GET' action='your action here'> 

     /* 
     * all other html here 
     */ 

     <input type='submit' value='Submit' id='btnSubmit' name='btnSubmit'> 

    </form> 

</html> 

$submitButton = $crawler->selectButton('btnSubmit'); 

изменить

$submitButton = $crawler->selectButton('Submit'); 

Поскольку selectButton() принимайте значение кнопки вместо идентификатора или имени.

Убедитесь, что это вам полезно.

1

Вы должны указать текст кнопки $crawler->selectButton().

// For a given HTML button: 
// <input type="button" value="Upload File" /> 
// or 
// <button type="button">Upload File</button> 

$crawler->selectButton("Upload File"); 

Примечание стороны, ваш шаблон регулярного выражения '/\/nextPage' является недействительным. Вы должны добавить закрывающий / ->'/\/nextPage/' // This will match the exact string: "/nextPage"

+0

Привет, сэр, я сделал то, что вы сказали, и все еще получал ту же ошибку. – momori14

+0

@ momori14, можете ли вы добавить '

Смежные вопросы