2013-06-28 8 views
2

Я хочу прикрепить CSV-файл к полю ввода типа «файл», используя Behat Framework (Mink Extension).не удалось подключить файл (csv-файл) в поле ввода с использованием расширения Behat Mink Framework

Html поля ввода ---- input id = "edit-ab-csv-file" class = "form-file" type = "file" size = "60" name = "files [ab_csv_file]">

первый метод Мы попытались Я попытался с помощью метода AttachFile() в Driverinterface

/** 
* Attaches file to field with specified id|name|label|value. 
* 
* @When /^(?:|I)attach the file "(?P<path>[^"]*)" to "(?P<field>(?:[^"]|\\")*)"$/ 
*/ 

public function attachFileToField($field, $path) 
{ 
    $field = $this->fixStepArgument($field); 

    if ($this->getMinkParameter('files_path')) { 
     $fullPath = rtrim(realpath($this->getMinkParameter('files_path')), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$path; 
     if (is_file($fullPath)) { 
      $path = $fullPath; 
     } 
    } 

    $this->getSession()->getPage()->attachFileToField($field, $path); 
} 


} 

второй метод --мы пытался использовать Java Script

$jscript = "document.getElementById('edit-ab-csv-file').value='//home//developer//build//tools//behat//Invaliduploadfile.csv';"; 
    $this->getSession()->getDriver()->executeScript($jscript); 

я получил исключение говоря

The operation is insecure. (WARNING: The server did not provide any stack trace information) 
     Command duration or timeout: 10 milliseconds 

Возможно, кто-нибудь может помочь устранить эту проблему.

ответ

0

Первый метод работает для меня. Не забудьте использовать полный путь к файлу или использовать настройку конфигурации Mink files_path.

Проверить этот пост на форуме: https://groups.google.com/forum/#!topic/behat/vxZAssi2Nf8

норка требует абсолютного пути для загрузки файла, но очевидно, что путь, вероятно, не будет работать в других средах. Вместо этого, вы можете обеспечить свойство "file_paths" в файл конфигурации YAML:

расширений:

Behat\MinkExtension\Extension: 

    files_path: "path/to/files" 
+3

В Behat 3 вы можете использовать '% paths.base%', чтобы сделать ваш каталог относительно где вы запускаете свои тесты. Например: 'files_path:% paths.base%/app/Test/Behat/Files' – DanielM

+1

В Behat 2 вы можете использовать'% behat.paths.base% 'за то, что предложил Даниэль. – Greg

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

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