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

Тестирование REST API
онлайн, начало 29 июля
Школа для начинающих тестировщиков
онлайн, начало 25 июля
Python для начинающих
онлайн, начало 26 июля
Автоматизация функционального тестирования
онлайн, начало 26 июля
Фотография

Обработка OS Popups используя Selenium Webdriver (Java)


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

#1 Vikonder

Vikonder

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

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

Отправлено 13 Ноябрь 2018 - 07:56

Камрады!

 

Задача обработать через UI pop-up операционной системы, для операций типа Import/Export

Речь идет о файлах excel

Т.е. нужно из меню Web- аппликации выбрать пункт Import/Export и в окошке всплывабщего окна выбрать Save/Browse..

 

Прикрепленный файл  Export.jpg   31,27К   0 Количество загрузок:

 

Selenium не обрабытывает такое событие.

Попытался сделать вот так  (ставлю внешнюю ссылку)

 

Export:

public class TestPassDownloadPopupDialogUseRobot {

    public static void main(String[] args) throws InterruptedException, AWTException, IOException {

        System.setProperty("webdriver.gecko.driver", "C:/selenium/geckodriver.exe");

        TestPassDownloadPopupDialogUseRobot example = new TestPassDownloadPopupDialogUseRobot();

        example.passFirfoxDownloadDialogUseRobot();

    }

    /* Use java.awt.Robot class to operate Firefox download popup dialog. */
    public void passFirfoxDownloadDialogUseRobot()
    {
        WebDriver ffDriver = null;
        try
        {
            String downloadUrl = "http://www.dev2qa.com/download/326/";

            // Initiate Firefox WebDriver object.
            ffDriver = new FirefoxDriver();

            // Navigate to the download url.
            ffDriver.navigate().to(downloadUrl);

            // Create Robot object.
            Robot robotObj = new Robot();

            // Press arrow down key to select save radio button.
            Thread.sleep(2000);
            robotObj.keyPress(KeyEvent.VK_DOWN);
            robotObj.keyRelease(KeyEvent.VK_DOWN);

            // Press tab key and navigate to Save button.
                Thread.sleep(2000);
                robotObj.keyPress(KeyEvent.VK_TAB);

            // Press down Save button.
            Thread.sleep(2000);
            robotObj.keyPress(KeyEvent.VK_ENTER);

            // Release up Save button, download process start.
            Thread.sleep(2000);
            robotObj.keyRelease(KeyEvent.VK_ENTER);

        }catch(Exception ex)
        {
            ex.printStackTrace();
        }finally
        {
            if(ffDriver!=null)
            {
                ffDriver.close();
                ffDriver = null;
            }
        }
    }

}

В результате, диалог откпывается, но ничего не происходит..

 

Для Import- пока вообще нет идей...

 

Может кто-нибудь сталкивался с такой задачей и есть более корректные решения?

 

 

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 603 сообщений


Отправлено 13 Ноябрь 2018 - 11:22

Двигайтесь в сторону настройки автоматического сохранения скачиваемого файла в нужную папку. Делается это через настройку профиля.

Что-то типа этого, но я давно не проверял работоспособность:

myProfile.setPreference("browser.download.dir", "путь в папку куда сохранять");  
myProfile.setPreference("browser.download.folderList", 2);
myProfile.setPreference("browser.download.useDownloadDir", true);
myProfile.setPreference("browser.download.animateNotifications", false);
myProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/excel,application/vnd.ms-excel,application/vnd.msexcel,application/zip");

По поводу инпута - погуглите что-то типа "selenium input file"


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



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

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

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