Отлов ошибок до тэга <HTML>
#1
Отправлено 21 сентября 2007 - 09:48
Уже какое-то время пользую Selenium, а сейчас возникла острая потребность в отлове ошибок, которые падают до тэга <HTML>.
А если я правильно понимаю, то Selenium распарсивает web-страничку и способен описать её элементы только внутри <HTML> ... </HTML>.
Может можно "подточить" Selenium под это? Если можно, то как? Если нет, то может ли кто-нибудь посоветовать метод отлова таких ошибок?
#2
Отправлено 21 сентября 2007 - 14:23
сейчас возникла острая потребность в отлове ошибок, которые падают до тэга <HTML>.
какого рода ошибок? javascript exceptions, html parsing errors, alerts on load ... но это все, вроде, уже после <html>.
насколько я помню, до <html> может идти только <!DOCTYPE .. >, или я не прав?
какой селениум? core? RC?
А если я правильно понимаю, то Selenium распарсивает web-страничку и способен описать её элементы только внутри <HTML> ... </HTML>.
Selenium не занимается парсингом html.
Selenium доступается до всего через javascript/dom/xpath
как результат, он может сделать все, что девелопер может сделать используя javascript/dom, с простым ограничением - ему требуется, чтоб страница была загружена (отсюда проблемы в случае с алертами на загрузке страницы) + (в определённых случаях) browser's scripting security limitations
Может можно "подточить" Selenium под это? Если можно, то как? Если нет, то может ли кто-нибудь посоветовать метод отлова таких ошибок?
может, кусочек хтмл-я постнете и расскажете поподробнее в чем проблема?
а то решений - от 'ничего не сделать' ;) до 'написать extension или специализированный proxy'.
#3
Отправлено 24 сентября 2007 - 04:52
может, кусочек хтмл-я постнете и расскажете поподробнее в чем проблема?
а то решений - от 'ничего не сделать' ;) до 'написать extension или специализированный proxy'.
похоже своими вопросами вы ответили на мой :)
мои ошибки возникают в тот момент когда очередной пакет с куском странички не загрузился (например, некорректный запрос к базе), а соот-но и Selenium (пользую RC) напрямую не сможет до них доступиться.
Например:
<br><b>Error:</b> ORA-00907: XXX</br>
<html>
<head>
<title> XXX - YYY</title>
<script type="text/javascript" src="/intranet/js/mtools.js"></script>
...
но желание и необходимость в отлове таких ошибок есть.
возможно ли это?
или посоветуйте плз как лучше поступить с такой ситуацией.
#4
Отправлено 24 сентября 2007 - 15:20
И при получении невалидного html выдавал бы сообщение об ошибке (replacing original html?), которую селениум уже мог бы легко подхватить. Ну а тестовый фреймворк проверял бы каждую страницу после загрузки на наличие такой ошибки.
да, я такой прокси не писал никогда - не было необходимости. попробуйте проконсультироваться с вашими девелоперами.
как альтернатива, несколько более hacky способ, который, возможно, будет работать только в firefox: если текст сообщения строится по одному достаточно уникальному шаблону, то можно попробовать искать его xpath-ом. что-то типа //b[text() = 'Error:']/parent::*[contains( text(), 'ORA-')] должно найти ваше сообщение.
#5
Отправлено 25 сентября 2007 - 04:06
можно попробовать написать (или модифицировать встроенный в selenium-rc?) proxy, который бы валидировал html.
И при получении невалидного html выдавал бы сообщение об ошибке (replacing original html?), которую селениум уже мог бы легко подхватить. Ну а тестовый фреймворк проверял бы каждую страницу после загрузки на наличие такой ошибки.
да, я такой прокси не писал никогда - не было необходимости. попробуйте проконсультироваться с вашими девелоперами.
как альтернатива, несколько более hacky способ, который, возможно, будет работать только в firefox: если текст сообщения строится по одному достаточно уникальному шаблону, то можно попробовать искать его xpath-ом. что-то типа //b[text() = 'Error:']/parent::*[contains( text(), 'ORA-')] должно найти ваше сообщение.
спасибо, попробую
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных