Как загрузить файл (с помощью raduploader), используя selenium RC?

Я пытаюсь загрузить файл, используя selenium, но проблема в том, что мое поле загрузки не похоже

<input type="file".....> [where i can directly say "selenium.type("xpath ","file path") ]

но здесь для загрузки файла мы используем Rad Uploader, и он ничего не записывает в IDE Селена, хотя я нажимаю на uploader,

Кто-нибудь знает, как загрузить файл с Raduploader, используя Selenium?

<object height="22px" type="application/x-silverlight-2" data="data:application/x-silverlight-2," 
id="ctl00_ctl00_ContentPlaceHolder1_mainTabContainer_thirdTab_ChildPlaceHolderCa‌​mpVolunteers_fileUploadVolunteersilverlight04"
class="ruObject" style="width: 100%;"> 

это некоторая часть кода поля загрузки

Благодарю.

1 ответ

Поскольку Rad Uploader - это в основном Java-апплет, вы можете использовать LiveConnect для взаимодействия с ним!

Существует даже инструмент для него и Selenium (хотя я не использую его, поэтому я не могу сказать, хорошо ли он работает или нет): http://fest.codehaus.org/Selenium

Если это не сработает, вам, вероятно, потребуется использовать другую библиотеку автоматизации для загрузки файлов, поскольку Selenium не создан для работы ни с апплетом Java, ни за пределами браузера. Возможные решения включают перетаскивание или (Ctrl + C + Ctrl + V ing) файлы из-за пределов окна на ваш Uploader, или слепое нажатие на кнопку Browse...


редактировать

Я явно искал не тот продукт, потому что код OP показывает, что на самом деле это элемент Silverlight, а не Java-апплет.

Но - зная, что для Java-апплетов есть инструмент для этого, я покопался и нашел:

Существует инструмент для использования Selenium RC с Silverlight! Не знаю, насколько хорошо это на самом деле работает, но вы можете попробовать. Да, я знаю, что это только Selenium RC, но вы можете попробовать это с WebDriverBackedSelenium...

Блог Скотта Хансельмана (очень читаемый!) - "злоупотребление" тем, что Silverlight может работать Scriptable методы. Он написан для Selenium IDE, но то же самое будет работать для WebDriver, тоже.

Среда тестирования для Silverlight. Microsoft. Selenium для веб-страниц, попробуйте это для магии Silverlight.


РЕДАКТИРОВАТЬ 2:

Всегда есть вариант, о котором я упоминал ранее. Так как загружаемая вещь не input, но есть объект Silverlight и отсутствует API для WebDriver, который позволял бы вам работать с диалоговыми окнами браузера (или объектами Silverlight), вы можете попробовать это:

После того, как вы нажмете элемент Silverlight, появится всплывающее окно, которое вы не сможете контролировать. В известных мне браузерах и операционных системах можно предположить, что после открытия окна курсор находится в File name вход. Пожалуйста, убедитесь, что это предположение верно и в вашем случае.

Если нет, вы можете попытаться перейти к нему, нажав Alt + N, по крайней мере, в Windows...

(Далее следует код Java! Я действительно не знаю C#. Однако он работает в Java. Класс C# похож на Java Robot является SendKeys )

Если да, вы можете "вслепую" ввести путь, используя Robot учебный класс. В вашем случае это будет что-то вроде:

driver.findElement(By.id("SWFUpload_0")).click();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_C);        // C
r.keyRelease(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_COLON);    // : (colon)
r.keyRelease(KeyEvent.VK_COLON);
r.keyPress(KeyEvent.VK_SLASH);    // / (slash)
r.keyRelease(KeyEvent.VK_SLASH);
// etc. for the whole file path

r.keyPress(KeyEvent.VK_ENTER);    // confirm by pressing Enter in the end
r.keyRelease(KeyEvent.VK_ENTER);

Это отстой, но это должно работать. Обратите внимание, что они могут вам понадобиться: Как я могу заставить робота набирать `:`? и конвертировать строки в ключевые события

Другие вопросы по тегам