2012-04-11 2 views
1

Как автоматизировать загрузку файла с помощью selenium.Selenium Загрузка файла

Как передать файл Путь?

My TextBox Readonly. Я не могу указать путь к файлу непосредственно в textbox.

Также, как остановить сервер selinum, пока этот файл не будет полностью загружен. ??

Поле для загрузки файлов - это невидимое поле. И я нашел его код, используя firebug add on.

Перед тем, как добавить код файла, выполните следующие действия.

<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[]}"> 

И после добавления файла (файла doc). Код изменен на

<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[{"fileInfo":{"FileName":"scope.docx","ContentType":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","ContentLength":12887},"metaData":"/wEFsAF7IlRlbXBGaWxlTmFtZSI6ImZyeWd1NGNqLmt1YSIsIkFzeW5jVXBsb2FkVHlwZU5hbWUiOiJUZWxlcmlrLldlYi5VSS5VcGxvYWRlZEZpbGVJbmZvLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDExLjEuNTE5LjM1LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQiffOraDjiYXPavAAMYOUAVVhGEKk8"}]}"> 

Что такое Xpath?

Я пробовал с xpath id = "ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState". Код, который я использовал это

selenium.type("id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState","c:\\docfile1.doc");

Но ее не работает.

Помощь Me ..

+0

I _think_ это не сработает, так как 'input' является' type = hidden'.Функция загрузки файла selenium работает только на видимых 'input' с 'type = file'. Как вы загружаете файл как человек, что вам нужно делать? –

+0

При нажатии на это поле для загрузки открывается диалоговое окно (окно). то я должен выбрать файл. После проверки этой ссылки (http://www.testrepublic.com/group/seleniumusers/forum/topics/how-to-upload-a-file-using-1), которая совпадает с моим вопросом .. Проверьте второй ответ там , –

+0

Почему это скрыто? На скриншоте я мог видеть текстовое поле. Какую версию селена вы используете? 1.0 или webdriver? –

ответ

1

Выражение XPath для этого input бы //input[@id='ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState'].

Однако я боюсь, что это не сработает, поскольку Селен обычно отказывается работать с невидимыми элементами. Кроме того, hidden <inputs> обычно представляют собой просто контейнеры для предварительно заполненных данных или контейнеров для данных, проверенных и редактируемых скриптом.

Вы должны искать <input type='file' />, если есть какой-либо, или, может быть, javascript, обрабатывающий щелчок на охватывающем элементе (но, откровенно говоря, это обычно не так, сценарии, как правило, действуют на редактирование ввода, а не на нажмите на них).

Если вы не можете найти его, напишите еще какой-нибудь код. Лучше всего было бы SSCCE, поэтому возьмите источник страницы и сделайте ее обнаженной, отбросьте все ненужное для нас. Мы любим код. И мы любим все, что голым.

И о ожидании завершения загрузки: нет такой вещи по умолчанию. Если файл отправляется во время обычной загрузки формы (нажав кнопку «Отправить»), браузер будет ждать. Если он будет загружен немедленно, вам придется подождать до конца. Поймите, что изменится после успешной загрузки, а затем дождитесь появления этого элемента/сообщения. С Selenium 2 (WebDriver) это can be done очень easily.

+0

Я. Я попробовал xpath. Но это не работает. –

+0

Каждое поле «AsyncfileUpload», которое я googled, указывает мне на [Инструмент управления ASP.NET AJAX Control Toolkit] (http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx) или на какой-либо производный инструмент - все из которых используют нормальное и прогнозируемое поле ''. Ваша лучшая надежда теперь в том, чтобы попросить разработчика страницы (я полагаю, это ваш коллега) что-то сделать, или, по крайней мере, дать вам несколько советов. Или обратитесь в службу поддержки MS для [ASP.net AJAX] (http://forums.asp.net/)/[Silverlight] (https://support.microsoft.com/oas/default.aspx?ln=ru&prid=11322&gsaid= 528185 & й = 1). –

1

Вы можете использовать

selenium.type("xpath of text box","path of your file") 

ИЛИ для IDE

command=type 
target=xpath_of_text_box 
value=Path_of_your_file 

пример:

selenium.type("id=cvfile", "D:\\Automation\\resume.doc"); 
Смежные вопросы