Хобрук: Ваш путь к мастерству в программировании

Как отобразить всплывающее окно селектора папок/каталогов в groovy script в пользовательском интерфейсе SOAP?

Я работаю над тестированием пользовательского интерфейса SOAP, в котором я пишу отличные сценарии. В одном месте мне приходится открывать всплывающий селектор каталогов, используя groovy. Я знаю, как открывать обычные окна сообщений. но я не знаю об отображении всплывающего окна для выбора каталога.

Может ли кто-нибудь предложить мне способ добиться этого?

25.10.2015

Ответы:


1

Поскольку groovy может выполнять код Java, вы можете просто использовать компонент Java Swing JFileChooser сделать это. Вы можете использовать следующий код в своем groovy-скрипте testStep, чтобы выбрать каталог и вернуть его обратно в свой код:

import javax.swing.JFileChooser

// create the file chooser
JFileChooser chooser = new JFileChooser() 
// set whatever directory you want where to start looking for your directory
chooser.setCurrentDirectory(new java.io.File("."))
chooser.setDialogTitle("select directory")
// filter to show only directories
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)
// get the user action
int returnVal = chooser.showOpenDialog()
// if the user selects a directory
if(returnVal == JFileChooser.APPROVE_OPTION) {
   // get the directory and start your logic
   File selectedDirectory = chooser.getSelectedFile()
   // sample print directory path
   log.info('Selected directory: ' + selectedDirectory.getAbsolutePath())
   // sample print all files inside selected directory
   selectedDirectory.listFiles().each{ file ->
        log.info(file.getAbsolutePath())
   }
}

Я не знаю, есть ли что-то более конкретное для вашего случая в SOAPUI API, однако этот код может помочь.

Надеюсь, поможет,

26.10.2015
  • Спасибо. Я хотел только это :) 26.10.2015
  • @Rushikesh рада помочь тебе :) 26.10.2015
  • предположим, у меня есть структура каталогов: abc -> xyz -> lmn. Теперь, когда я выбираю каталог «lmn» и вызываю файлы списка функций, такие как Chooser.getCurrentDirectory().listFiles(), тогда он берет все файлы в каталоге «xyz», но не в «lmn». Я хочу взять все файлы из каталога lmn. Любое предложение? Я пытался использовать 'file.getAbsolutePath().listFiles()', но выдает ошибку. 26.10.2015
  • @Rushikesh, потому что getCurrentDirectory() дает вам текущий каталог выбранной вами папки, а не саму папку. Вместо этого используйте chooser.getSelectedFile().listFiles(). Я обновлю свой ответ, чтобы прояснить его. 26.10.2015
  • Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

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