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

Программирование на Python для тестировщиков
онлайн, начало 21 сентября
Школа тест-менеджеров v. 2.0
онлайн, начало 26 сентября
Логи как инструмент тестировщика
онлайн, начало 24 сентября
Школа для начинающих тестировщиков
онлайн, начало 24 сентября
Фотография

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
  • 708 сообщений
  • ФИО:Dmitry Petrov

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

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

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


  • 0

#3 Noksa

Noksa

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

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

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

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

 

 

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

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

  • 0

#4 Isidor2811

Isidor2811

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

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

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

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


  • 0


Программирование на С# для тестировщиков
онлайн, начало 28 сентября
Автоматизатор мобильных приложений
онлайн, начало 5 сентября
Selenium WebDriver: полное руководство
онлайн, начало 14 сентября
Программирование на Python для тестировщиков
онлайн, начало 21 сентября



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

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

Яндекс.Метрика
Реклама на портале