Проверка загрузки файла на сайт

Приветствую еще раз. Продолжаю разбираться с селениумом.

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

Собственно, вопрос - это вообще реально протестировать с помощью селениума? Понятно, что на кнопку кликнуто можно, но можно ли как-то заставить его работать с проводником и выбирать файл? Или привязать конкретный файл изначально, я не знаю?
Пишу через xml, иначе не умею :)

 

привет!
не пробывал
но попал на классные видео по селениуму
http://qtpselenium.com/samplevideos/selenium/seleniumvideos.php

 

  Training Video - 37


 

Uploading files in Chrome

может оно

Спасибо, но с работы я не смогу открыть видео. :( Посмотрю с домашнего компа, может, и правда чем поможет.

Поищите на странице <INPUT type="file"... и просто тайпайте в него путь к файлу.

Нашла вот такое: <input class="hid_file_input" type="file" name="file">

На всякий уточняю - что из этого надо прописать в target?

Любой валидный локатор на Ваш вкус.

     /**
     * Send keys is used to select file for uploading
     *
     * @param inputBy  select file input locator
     * @param filePath relative path to file
     */
    protected void selectFile(By inputBy, String filePath) {
        LocalFileDetector detector = new LocalFileDetector();
        File file = detector.getLocalFile(filePath);
        driver.setFileDetector(detector);
        sendKeys(inputBy, file.getPath());
    }
 
    protected void sendKeys(By by, String text) {
        driver.findElement(by).sendKeys(text);
    }

 

Спасибо, кажется, получилось.

А есть ли способ проверить, что файл именно загрузился, за исключением тупо поиска текста (название файла появляется возле формы загрузки, не кликается, просто текст)?

Увы, это мне не поможет, ибо понятия не имею, как такое вставлять в ide :) Сие яваскрипт? Ява? Видите, даже этого не знаю :)
Мне бы простенько пока, с хтмл-тегами. :)

Java + WebDriver. Вы хотите реализовать загрузку файла на сервер при помощи IDE и потом еще проверить на серверной стороне, загрузился он или нет? :) В стандартном варианте вас спасет простой ввод пути в input с типом file, как уже написали выше, и банальная проверка текста. Хотя, наверняка у вас на сайте есть какой-нибудь менеджер загруженных файлов. Откройте и проверьте, что список пополнился еще 1 элементом. В нестандартном же случае придется учиться писать программы руками. :)

Проверка текста - не спасает. Такой текст просто не находится. Инпут спасает, да, на странице появляется имя файла, как при загрузке. Но файрбагом этот элемент выловить упорно не могу, нет там разницы "до загрузки" и "после".

Менеджера нет или я о нем не знаю. Это не сервис для хранения файлов, а форма отправки сообщения  в техподдержку, соответственно пользователь этот файл только загружает и более никак им не пользуется.

Ну блин НЕ ЗНАЮ я яву! :( Совсем не знаю. Знала бы - писала бы тесты на ней и не маялась с селениумом, аднака :(

А как вы это можете проверить вручную если

название файла появляется возле формы загрузки, не кликается, просто текст

АПД. Обсудили вопрос с коллегой :) Пока оставляем все, как есть, она потом на яве сама допишет, что надо.

Всем спасибо :)

 

Может когда-то пригодится
 
<tr>
<td>type</td>
<td>id=reply_attachments</td> // "reply_attachments" -- какую кнопку нужно кликнуть 
<td>/path/file.jpg</td>
</tr>
 
 
Чтобы проверить, что файл загрузился я использовала verifyElementPresent  / link=file.jpg, но ето линк. Можете попробовать verifyTextPresent file.jpg