Тестирование с помощью Sikuli. Исключения на Java


(kokos_test) #1

Тестирую GUI сайта. Использую Sikuli и Eclipse. При нажатие на определенную область должна открыться страница с определенным текстом и картинкой. Делаю скрин этого текста вместе с картинкой. 

Как мне вывести ошибку, если отрывается не та страница или она вообще не открывается???

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

Вот один из них.    

Pattern click_works = new Pattern ("C:\\Sikuli_Tests\\workspace\\image\\chrom.png");

   try{    

   screen.exists(click_works);

        }

        catch(FindFailed e){

            e.printStackTrace();

    }


(Mykhailo Poliarush) #2

давайте еще раз разберемся что вам более конкретно нужно

вывести ошибку, или словить ее? 

и какие варианты вы уже пробовали?

 

но в общем по указанному коду должен сказать, что exists не генерирует exception

можете посмотреть внутренний код реализации этого метода, тогда вам станет более понятно

т.е. если exists ничего не находит, то просто возвращает null

 

public <PSC> Match exists(PSC target, double timeout) {
      try{
         RepeatableFind rf = new RepeatableFind(target);
         if (rf.repeat(timeout)){
            _lastMatch = rf.getMatch();
            return _lastMatch;
         }
      }
      catch(Exception ff){
         // TODO: This should throw an exception since
         // it is likely caused by not able to read the input
         // image.
      }
      return null;
   }
 
вот если вы будете использовать wait метод, тогда у вас все получится с вышеуказанным кодом

(kokos_test) #3

Ну в общем благодоря вашим советам, спасибо за это. Все работает с такой вот конструкцией.

 

   Pattern click_works = new Pattern ("C:\Sikuli_Tests\workspace\image\click_works.png");
        try{
        screen.exists(click_works);
        screen.wait(click_works);
        }
        catch(FindFailed e){
        System.out.println("ОШИБКА!!! Не открылась или открылась, но не та страница!" + html_iframe);
        }

(Mykhailo Poliarush) #4

только exists уже не нужен в этом случае

wait метод будет ожидать ваш объект в течении некоторого времени и если он найдется то все хорошо пойдет дальше

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