Navigation:  Типовые шаблоны > Регистратор >

Проверка успешности

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

   Практически всегда, после того, как прошла регистрация на web ресурсе перед сохранением результатов необходимо проверить, точно ли регистрация выполнилась без ошибок. Иначе среди сохраненных данных будут невалидные.

 

План проверки

  Проверить валидность регистрации очень просто, нужно после окончания всех действий регистрации, перед сохранением, сделать несколько действий: взять текст страницы и поискать в нем ключевое слово, которое бы означало успешность регистрации. Это может быть фраза "поздравляем с успешной регистрацией" или просто слово "выход", главное чтобы этого слова или фразы не было при неуспешной регистрации. Далее проверить, если слово найдено, то перейти к сохранению, если не найдено, то выйти из регистрации с ошибкой. Всего у вас добавится две ветки в конце регистрации, далее подробнее о ни и их настройке.

 

Взятие текста и парсинг из него ключевой фразы (слова)

   Создаем ветку типа Get--WebBrowser, в ней будет взят текст web страницы и пропарсен регулярным выражением, указанным в параметре  ветки. Регулярное выражение будет искать нужный текст в тексте web страницы. Регулярное выражение для поиска конкретного текста совпадает с этим текстом (в 95% случаев) поэтому, скорее всего, вам не придется пользоваться средствами для тестирования регулярного выражения на тексте страницы. Также нужно знать, что текстов web страницы бывает несколько:

Исходный текст - это изначальный текст, загруженный с сервера, вы его видите в любом браузере, когда нажимаете кнопку "показать исходный текст страницы". Отличительная черта этого текста в том, что в нем не выполнены никакие JavaScript и не загружены фреймы. На взятие этого текста тратится мало процессорного времени
DOM текст - это текст, который получился после выполнения всех JavaScript на странице, он соответствует полному дереву HTML документа, в нем выполнены все JavaScript и включены DOM тексты всех фреймов. На взятие этого текста тратится много процессорного времени
Текст страницы - это текст, который видит пользователь. Он содержит выполненные JavaScript и тексты фреймов. На его взятие  тратится столько же процессорного времени, сколько и на взятие DOM текста
URL на котором находимся - берется очень быстро, как им пользоваться читайте ниже в подразделе "Модификации"

Встает вопрос, какой текст лучше выбрать для парсинга. Если текст не во фрейме и не генерируется с помощью JavaScript, то лучше использовать "Исходный текст страницы". Иначе " DOM текст".

 

Настройки ветки Get--WebBrowser
 
Настройки ветки Get--WebBrowse

 

Проверяем что напарсили, т.е. есть ли нужный текст

  Теперь, когда выпарсили текст, нужно добавить еще одну ветку типа Set--Логическая операция. В этой ветке мы проверим выпарсенный текст на пустоту. Т.е. если мы парсили из текста фразу "поздравляем с успешной регистрацией", а ее там не было, то в результате парсинга мы получим пустую строку. Если она там была, то ее мы и получим на выходе. Таким образом, нужно проверить в ветке логической операции выпарсенный текст на пустоту, если он будет пустым, значит произошла ошибка при регистрации, если же там будет искомый текст, то все нормально и можно сохраняться. Напомню, что выпарсенный текст можно взять макрос-ссылкой на ветку, в которой парсили текст страницы. Также посмотрите внизу страницы примечание.

  Картинку как это выглядит можно посмотреть в разделе "повторный ввод данных при неудаче".

 

Модификации

  Есть пара модификаций для решения этой задачи.

Можно искать не наличие текста,  а его отсутствие на странице. Таким текстом может быть "каптча введена неверно" или "такой логин уже занят". Особенно это полезно, когда нужно обработать какую-либо конкретную ошибку по вводу данных, а не любую.

Еще можно проверить URL на котором мы сейчас находимся и по нему определить в каком состоянии находится регистрация.

 

 


Помните!

Чтобы в логической ветке сравнивать тексты, вы должны оба выражения взять в кавычки, т.е. примерно так:

"макрос-ссылка" == "" в этом выражении сравнивается результат выполнения какого-то шага (на который указывает макрос ссылка) и пустая строка.