Не удается прикрепить файл (CSV-файл) в поле ввода с помощью Behat Mink Extension Framework
Я хочу прикрепить файл CSV к полю ввода типа "файл", используя Behat Framework (Mink Extension).
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);
}
}
2-й способ - мы пытались использовать скрипт Java
$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
Может кто-нибудь, пожалуйста, помогите исправить эту проблему.
1 ответ
Первый метод работает для меня. Не забудьте указать полный путь к файлу или использовать конфигурационный файл files_path Mink.
Проверьте это сообщение на форуме: https://groups.google.com/forum/
Mink требует абсолютного пути для загрузки файла, но очевидно, что этот путь, вероятно, не будет работать в других средах. Вместо этого вы можете предоставить свойство file_paths для вашего файла конфигурации Yaml:
расширения:
Behat\MinkExtension\Extension: files_path: "path/to/files"