Уловие if с буквами

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
привет всем. Помогите решить задачку.
Пытаюсь написать условие для капчи. Если капча разгадана то идем дальше если не разгадана то на повтор разгыдвания
Как сделал:
45078

Через конструктор действий в переменную получаю текст от яндекса "Вы неверно ввели символы. Попробуйте еще раз"
45080

Создал переменную - константу с таким же значением.
45081

Создал блок if где сравниваю 2 переменные и если равно то значит капча не разгадана и идем на переразгадывание если не равно и выдает ошибку то капча разгадана и идем дальше по алгоритму.
45082

В блоке if писал так {-Variable.re_captcha-}=={-Variable.re_captcha_const-} Где "re_captcha" это переменная которая подтягивается (или не подтягивается если ее нет на странице)

Проблема в том что переменные сходятся или не сходится всегда выдает ошибку. Что я не правильно сделал?

Только что выявил еще проблему. даже если капча разгадана и сообщения нет все равно заполняется переменная текстом "Вы неверно ввели символы. Попробуйте еще раз"
 
Последнее редактирование:

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
Проблема в том что переменные сходятся или не сходится всегда выдает ошибку. Что я не правильно сделал?
Вы не указали кавычки, все переменные в которых значение типа стринг (строка, а не число) берутся в кавычки.
правильно будет так:

Код:
"{-Variable.re_captcha-}"=="{-Variable.re_captcha_const-}"
 
  • Спасибо
Реакции: tiptopvkr

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Спасибо. Это получилось.
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Вы не указали кавычки, все переменные в которых значение типа стринг (строка, а не число) берутся в кавычки.
правильно будет так:

Код:
"{-Variable.re_captcha-}"=="{-Variable.re_captcha_const-}"
или в одинарные, апострофы тоже считаются и работают ))
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Остался вопрос в том что даже если этого текста на странице нет то все равно вставляется это значение в переменную так как нашло в исходном коде. Он просто скрыт с фронта. Вручную проверил - есть такой текст. Как тогда проверить?
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Остался вопрос в том что даже если этого текста на странице нет то все равно вставляется это значение в переменную так как нашло в исходном коде. Он просто скрыт с фронта. Вручную проверил - есть такой текст. Как тогда проверить?
Если у тебя циклический процесс - нужно очищать переменную re_captcha перед блоком решения капчи. Просто присвой ей пустоту перед своим блоком.

А если он всегда находится в исходном коде - значит нужно переделать условие назначения переменной этого значения. Проверять элемент на видимость или другой какой-нибудь метод.

Мб искать не в page.dom, а в page.text...
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
В том то и дело что этот текст всегда в исходном коде. Нет случайно такой функции прочитать видимый текст с фронта только?
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
В том то и дело что этот текст всегда в исходном коде. Нет случайно такой функции прочитать видимый текст с фронта только?
Есть. Попробуй Page.Text. Если там так же получится - надо будет пробовать искать элемент в котором это сообщение выводится и проверить его на видимость - по атрибутам высота-ширина либо по содержимому загруженного элемента по XPath.

Анализируешь обе ситуации, когда элемент есть и когда его нет - что меняется и что статично, и от этого уже пляшешь.
 

KokaSEO

Client
Регистрация
17.01.2015
Сообщения
191
Благодарностей
75
Баллы
28
В том то и дело что этот текст всегда в исходном коде. Нет случайно такой функции прочитать видимый текст с фронта только?
Сравни координаты этой надписи left / top до и после действия. Они обычно отличаются, если элемент есть в коде но на странице не отображается
 

dimafatality

Client
Регистрация
19.01.2014
Сообщения
266
Благодарностей
254
Баллы
63
В том то и дело что этот текст всегда в исходном коде. Нет случайно такой функции прочитать видимый текст с фронта только?
Ну, из простого, переменная окружения {-Page.Text-} содержится только текст страницы, без исходного кода.
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
{-Page.Text-} нашел. А как написать чтобы был поиск конкретного текста в этой переменной? Дело в том что страницы не идентичны. Каждый раз есть несколько символов которые отличаются. Но тот кусок текста который я пытаюсь отфильтровать всегда неизменен.

Вручную проверил переменную там все хорошо. Когда есть на экране - есть в переменной, когда нет тогда нет. Нужно понять как сверить часть текста внутри переменной.
 

dimafatality

Client
Регистрация
19.01.2014
Сообщения
266
Благодарностей
254
Баллы
63
А как написать чтобы был поиск конкретного текста в этой переменной?
Данные - Обработка текста

вставляешь туда {-Page.Text-} и дальше выбираешь нужное действие, например regex
 
  • Спасибо
Реакции: tiptopvkr

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
{-Page.Text-} нашел. А как написать чтобы был поиск конкретного текста в этой переменной? Дело в том что страницы не идентичны. Каждый раз есть несколько символов которые отличаются. Но тот кусок текста который я пытаюсь отфильтровать всегда неизменен.

Вручную проверил переменную там все хорошо. Когда есть на экране - есть в переменной, когда нет тогда нет. Нужно понять как сверить часть текста внутри переменной.
Ты же совпадение в {-Page.Dom-} искал? Через регулярку? Туда просто Text вместо Dom вставь и все.

Если ты {-Page.Text-} в переменную засунул - тогда указываешь {-Variable.Имя_переменной-} как исходник для твоего Regex.
 
Последнее редактирование:
  • Спасибо
Реакции: tiptopvkr

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Вот тут и начались сложности) Я с регулярками еще не знаком. Новичок совсем еще. 3 день только работаю с прогой)

Я вот тут уже все перепробовал) Не выходит) Ткните пальцем если не затруднит...
45087
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Вот тут и начались сложности) Я с регулярками еще не знаком. Новичок совсем еще. 3 день только работаю с прогой)

Я вот тут уже все перепробовал) Не выходит) Ткните пальцем если не затруднит...
Посмотреть вложение 45087
1 вариант:

45088



2 вариант:

45089
 
  • Спасибо
Реакции: tiptopvkr

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Я методом научного тыка и благодаря вашим подсказкам немного другим способом получил результат)
45090

Ну и дальше сравнение переменных и экшн if
Проверил срабатывает и когда находит и когда не находит
Большое спасибо всем за помощь.
 
  • Спасибо
Реакции: Sergodjan

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
631
Благодарностей
542
Баллы
93
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Я методом научного тыка и благодаря вашим подсказкам немного другим способом получил результат)
Посмотреть вложение 45090
Ну и дальше сравнение переменных и экшн if
Проверил срабатывает и когда находит и когда не находит
Большое спасибо всем за помощь.
Здесь с простым текстом все работает, без Escape строки, но все же правильнее использовать регулярку по всем правилам, т.к. в варианте с более сложным текстом, могут быть сюрпризы.

45091
 
  • Спасибо
Реакции: Ilshakin и tiptopvkr

dimafatality

Client
Регистрация
19.01.2014
Сообщения
266
Благодарностей
254
Баллы
63
Вот тут и начались сложности) Я с регулярками еще не знаком. Новичок совсем еще. 3 день только работаю с прогой)
В ПроджектМейкере нажми F3 (стандартный хоткей), откроется конструктор регулярных выражений.
В большинстве случаев это очень удобно и разбираться не нужно :-)
 
  • Спасибо
Реакции: Sergodjan и tiptopvkr

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Круто) Всем спасибо) Буду завтра править шаблон)
 
  • Спасибо
Реакции: Sergodjan

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)