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

Публикации frei_by

176 публикаций создано frei_by (учитываются публикации только с 27 сентября 2023)



#78970 Что сделать чтобы не закрывался RC и браузер при возникновении ошибки

Отправлено автор: frei_by 19 октября 2010 - 11:32 в Selenium - Functional Testing

Не пробовали отлавливать Exception-ы?
Это может помочь...


я пробовал.
Гоняю тесты из под NetBeans через PHPUnit
...
(спустя час) - заработало, но всё равно очень странно:

код

$arr = array (
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href'
                    );

       for ($i=0;$i<10;$i++)
       {
           $xpath = $arr[$i];
           try
           {$name = $this->getAttribute($xpath);
           fwrite ($log_h, "№-$i OK: getAttribute(".$xpath.") = $name \n ");
           }
           catch (Exception $e)
           {fwrite ($log_h, "№-$i ERROR: function getAttribute(".$xpath.") return error!\n ");}
       }

выдаёт запись в лог вроде

continue log 
№-0 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-1 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-2 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-3 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-4 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-5 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-6 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-7 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-8 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-9 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/

Но если заменить одно из условий напирмер в массиве

$arr = array (
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'!Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href',
           '//a[contains(text(),\'Компьютеры\')]@href'
                    );

(добавили лишний символ 6 элементу начиная с нуля,)
то тот-же самый скрипт выдаст такой результат:

continue log 
№-0 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-1 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-2 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-3 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-4 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-5 OK: getAttribute(//a[contains(text(),'Компьютеры')]@href) = /Kompjutery/ 
 №-6 ERROR: function getAttribute(//a[contains(text(),'!Компьютеры')]@href) return error!
 №-7 ERROR: function getAttribute(//a[contains(text(),'Компьютеры')]@href) return error!
 №-8 ERROR: function getAttribute(//a[contains(text(),'Компьютеры')]@href) return error!
 №-9 ERROR: function getAttribute(//a[contains(text(),'Компьютеры')]@href) return error!

т.е. получается если одно из условий ляснулось, то и на все остальные вешается Expection...
Это особенность PHPUnit ?