2013-09-24 4 views
1

У меня есть страница, содержащая форму с некоторыми элементами ввода, включая текстовую область. Эти поля ввода заполняются некоторыми значениями. Подумайте об этой странице в целом как о странице редактирования для какого-либо объекта. Textarea содержит строку XML, который показывает правильно в обычном браузере (например, Firefox и Chrome.) И выглядит следующим образом:Goutte with behat: xml string, поскольку значение textarea заполнено объектами html

<front> 

    <!-- top row --> 
    <cell> 
     <page>8</page> 
    </cell> 

</front> 

Но когда я запустить тестовый случай с водителем ГОУТТОЙ норковой страница загружается и значение текстового поля кодируется с помощью специальных символов, например, так:

&lt;front&gt;&#13; 
&#13; 
    &lt;!-- top row --&gt;&#13; 
     &lt;cell&gt;&#13; 
      &lt;page&gt;8&lt;/page&gt;&#13; 
     &lt;/cell&gt;&#13; 
&#13; 
&lt;/front&gt;&#13; 

и когда я нажимаю кнопку, неразбериха отправляется на сервер и сохранили вместо первоначального правильного XML представить. Обратите внимание, что я вообще не трогаю его. Я могу просто загрузить страницу и нажать кнопку отправки, и все это завинчивается. Это происходит только с goutte, но не с, скажем, selenium2.

Так что вопрос: как я могу заставить goutte интерпретировать эти html-объекты автоматически и отправлять их как правильные данные, а не закодированные беспорядки?

ответ

1

нет решения для этого. Это похоже на нормальное поведение Goutte/Guzzle. В качестве временного решения мы закончили с следующим раствором: в случае, если используется драйвер Goutte мы проверяем содержание страниц для всех <textarea> элементов, и если найдено, то для каждых мы получаем их содержание и ясно переустановите следующим образом:

$elements = $this->pageContent->findAll('xpath', '//textarea'); 
foreach ($elements as $element) { 
    $element->setValue($element->getText()); 
} 

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

  • Нет связанных вопросов^_^