Не пробовали отлавливать 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 ?