2012-05-04 4 views
2

Я пытаюсь автоматизировать загрузку файла с помощью webdriver, мой HTML это файл типа.Как автоматизировать загрузку файла с помощью webdriver.

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

с помощью этой команды getWebDriverObj(). FindElement (By.id ("fileupload")). SendKeys ("code.txt"); Я не могу получить результат.

любой человек сталкивался с такой ситуацией, если да, пожалуйста, помогите мне.

Thanks Raghuram.

+1

Это должно сработать. Какая ОС, браузер (+ версия), версия и язык Selenium (um, это глупый вопрос - ваш код похож на Java) вы используете? Любой специальный стек технологий на веб-странице (например, Silverlight, Flash, asp.net и т. Д.)? Что происходит, когда ваш код работает, ничего вообще, или он генерирует исключение? Что будет делать javascript 'document.getElementById (" fileupload "). Value =" Code.txt "? –

+0

Я использую windows7, browser = firefox (версия-11) selenium-standalone-server-2.21.0.jar, язык = java. используя iframe. Это не исключение. Это отлично работает с командой selenium.type. Но я хочу знать, как использовать в webdriver. – Raghuram

+0

Если вы используете Internet Explorer (или любой другой браузер), работает ли он еще _not_? –

ответ

0

Если предыдущий способ не работает Вы можете попробовать следующую цепочку. 1. Диалог выбора файла звонка по кнопке (используйте метод webdriver click() или javascript "document.getElementById ('id'). Click()" 2. И отправьте управление в Autoit (или что-то другое), и AutoIt будет работать с File Select Dialog (Адресная типа в файл, нажмите кнопку) . Например:

 var Autoit = new AutoItX3(); 
     const string widowTitle = "File Upload"; 
     Autoit.WinWait(widowTitle, "File &name:", 10); 
     Autoit.ControlSetText(widowTitle, "", "[CLASS:Edit; INSTANCE:1]", pathToFile); 
     Autoit.ControlClick(widowTitle, "", "[CLASS:Button; INSTANCE:1]"); 
     Autoit.WinWaitClose(widowTitle, "File &name:", 10); 

установки Java и AutoIt http://code.google.com/p/autoitx4java/

0

Autois Windows, определенной только

Вот более надежное решение:

Для этого вы должны найти «идентификатор» действительного ввода (где предусмотрен путь к файлу), а затем использовать следующую команду:

driver.findElement(By.id("upload")).sendKeys("/path/to/the/file"); 
driver.findElement(By.id("upload_button")).click(); 

Если вы используете WebDriverBackedSelenium вы можете использовать:

selenium.type ("locator", "/ path/to/the/file");

selenium.click("upload_button");