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

Фотография

Upload файла через стандартное окно Windows

Upload файла

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

#1 Isidor2811

Isidor2811

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Дацюк Олег

Отправлено 12 июля 2018 - 11:41

Всем привет! Есть небольшая проблема.

 

В приложении есть кнопка (сразу скажу что это не мы разрабатывали эту функциональность, и повлиять на нее мы не можем), по нажатии этой кнопки, а что самое важное даже на поле возле кнопки открывается стандартное окно загрузки файла windows Прикрепленный файл  123.jpg   59,19К   0 Количество загрузок:  --->   Прикрепленный файл  234.jpg   89,97К   0 Количество загрузок:

 

Делаю так:

 

Копирую в буфер обмена путь к ключу

public void copyPathToKeyToClipBoard(){
        StringSelection copyToClipBoard = new StringSelection(ECPKeysConfig.pathToKey);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(copyToClipBoard, null);
    }

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

public void pastePathToKey() throws AWTException {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_ENTER);
}

Но проблема в том что во время этой операции мне нужно обязательно фокусироваться на этом окне, то есть если на пример я запущу тест и на соседнем мониторе буду что то писать в word то этот путь к ключу просто будет вставлен в word.

 

Кто подскажет как решить эту проблему.

 

Сражу скажу что actions не работают. Также я не могу на прямую отправить путь к файлу в поле возле кнопки, в любом другом месте работает но не тут, так как после нажатия на поле открывается окно windows

 


  • 0

#2 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 12 июля 2018 - 12:04

проблема решается обособленным окружением для прогонки тестов.

поставьте себе хипервизор и сделайте там виртуалку. по другому данную проблему не решить, так как эта штука (работа с таким модальным окном) изначально костыль, и решить эту задачу разработчики силениума не могли по другому. Потому что, это ограничение языка на котором он написан (если мне не изменяет моя многострадальная память).


  • 0

#3 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 12 июля 2018 - 12:18

Решение вашей проблемы - это прогонять тесты на машине, где не сидит человек во время тестов.

 

 

Ну либо костыли придумывать...

Window[] windows = Window.getWindows();
for (Window window : windows) ...

  • 0

#4 Isidor2811

Isidor2811

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Дацюк Олег

Отправлено 13 июля 2018 - 06:53

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


  • 0


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

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