скрипт sahi для выбора и загрузки файла

Я использую Sahi для автоматизации тестирования веб-приложения. Мне нужно написать скрипт для сахи для загрузки файла. Но, к сожалению, я не знаю дороги. Кто-нибудь может мне помочь?


person vinod    schedule 08.02.2012    source источник


Ответы (4)


Загрузка файла может быть сложной задачей в зависимости от любых проверок, которые вы выполняете при загрузке. Для начала можно попробовать следующее:

Синтаксис:

_setFile(element, filePath [, actionURL])

например: _setFile(_file("id"), "C:\abc\efg.jpg", "formSubmit.jsp");

Если в поле файла есть проверки JavaScript, вы можете попробовать этот хак. Перед отправкой файла измените тип поля на «текстовый», а затем установите его значение. Например.

// set the file
_setFile(_file("file"), "scripts/demo/uploadme.txt");
// Change the "type" attribute of file field
if (_isIE()){
_call(_file("file").outerHTML = _file("file").outerHTML.replace(/type=['"]?file['"]?/, "type=text"));
}else{
_call(_file("file").type = "text");
}
// Set the value into the textbox
_setValue(_textbox("file"), "scripts/demo/uploadme.txt");

Это работает для большинства случаев. Если вы все еще получаете какую-либо ошибку, вы можете опубликовать ее здесь.

Спасибо, Вивек

person Vivek V Dwivedi    schedule 19.10.2012

Вы можете использовать следующие

_setFile(_file("id"), "C:\\abc\\efg.jpg");

Не уверены, что вам нужно что-то более сложное?

person Abe Petrillo    schedule 20.02.2012
comment
мне нужно более сложное, потому что загрузка файла не преобразуется в текстовое поле - person vinod; 23.02.2012
comment
Вам нужно больше деталей в вашем вопросе и пример кода, где что-то идет не так. Невозможно расшифровать ваш вопрос - person Abe Petrillo; 23.02.2012

Обратите внимание, что начиная с Sahi 4.3 существует _setFile2, которая автоматически обрабатывает проверки js и выполняет преобразование типа ввода.

person COil    schedule 22.02.2013

Я решил использовать функцию setFile2 с внутренним изменением типа поля на text

person xruizs    schedule 21.10.2015
comment
Здесь уже есть ответ, опубликованный более двух лет назад, в котором упоминается эта функция. У вас есть что добавить к этому ответу? - person skrrgwasme; 21.10.2015