Перейти к содержимому

Фотография

Как в webdriver подтвердить окно загрузки элемента

java selenium webdriver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 marinel

marinel

    Новый участник

  • Members
  • Pip
  • 51 сообщений


Отправлено 04 января 2016 - 12:15

Всем добрый день,

Подскажите, пожалуйста, как на java в тесте написать код, чтобы подтвердить загрузку элемента.

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

 

Заранее спасибо.


  • 0

#2 fiatlux

fiatlux

    Новый участник

  • Members
  • Pip
  • 47 сообщений

Отправлено 04 января 2016 - 13:54

Привет.

К сожалению WebDriver не умеет работать с нативными окнами Windows.

 

Путей несколько:

1) Отказаться от подобных тест-кейсов

2) Написать костыль для кликанья через Robot Framework (при этом еще нужен костыль для определения - появилось ли окно или нет, а это уже вообще работа с native)

3) Использовать Browser Mob Proxy (пример для связки с Selenide фреймворком тут)


  • 0

#3 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 04 января 2016 - 14:18

Всем добрый день,

Подскажите, пожалуйста, как на java в тесте написать код, чтобы подтвердить загрузку элемента.

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

 

Заранее спасибо.

Загрузка элемента как реализована?

Если стандартно, через input type=file и вы заранее знаете, что загружать, то можно обойтись средствами webdriver.

 

Если же нет или логика более сложная, то см. выше.


  • 0

#4 asolntsev

asolntsev

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:Андрей Солнцев
  • Город:Таллинн

Отправлено 04 января 2016 - 17:40

Загрузка - это скачать (download) или закачать (upload)? В любом случае, в selenide это делается одной командой:

$("input").uploadFile(New File(...));
File file = $("a").download();
  • 0

#5 fiatlux

fiatlux

    Новый участник

  • Members
  • Pip
  • 47 сообщений

Отправлено 05 января 2016 - 10:11

Андрей, судя по описанию проблемы - девушка столкнулась с Windows-окном для сохранения файла. Если у нее есть href файла - это одно, если же нет, то это другое дело...


  • 0

#6 marinel

marinel

    Новый участник

  • Members
  • Pip
  • 51 сообщений


Отправлено 08 января 2016 - 09:59

Спасибо за ответы. Название файла я буду знать заранее, 

Подскажете код для Webdriver?


  • 0

#7 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 11 января 2016 - 07:54

yourInputForFileUpload.sendKeys(file.getAbsolutePath());

У меня для работы с файлами сделан отдельный класс, в котором и реализован getAbsolutePath.

К сожалению, Селениум работает только с абсолютными путями (если конечно с того момента, как я это добавила в свой проект - ничего не поменялось).

В моем случае - загружаются заранее выбранные файлы, поэтому у меня указан путь к ресурсам.

private String RESOURCES_PATH = "\\src\\main\\resources";
...
public String getAbsolutePath() {
    String result = null;
    try {
        result = new File(".").getCanonicalPath() + RESOURCES_PATH + getFilePath();
     catch (IOException e) {
        log.error("[FILE] File not found or path is incorrect. " + e.getMessage());
    }
    return result;
}

"getFilePath()" - метод возвращает имя файла, который я хочу загрузить(с учетом папки, если вдруг файл лежит не в корне ресурсов).

Например, "\\folder\\file.jpg".

В итоге, в sendKeys передается путь вида "C:\<путь_по_папкам_до_проекта>\<путь_до_ресурсов>\folder\file.jpg".


  • 0



Темы с аналогичным тегами java, selenium, webdriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных