Почему со временем меняются значения в конструкторе действий

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Всем привет

Написал бот для отправки писем с почты mail.ru. Пару дней все хорошо работало, сегодня стали появляется ошибки, обратил внимание на то, что везде изменился 1-н элемент в Значениях к примеру mailbox:login на mailbox__login. С чем это может быть связано, может с палился Бот который я написал или у них регулярно такие изменения
 

Вложения

Moguai

Client
Регистрация
23.03.2015
Сообщения
26
Благодарностей
16
Баллы
3
Я думаю что меняют часто. Я тут регер писал недавно. Работало все норм. А месяц спустя вон сижу с нуля переписываю. Не цепляется за многие элементы.
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Я думаю, что у них должны быть стандартная замена элементов к примеру : меняют на __ и еще парачка элементов. Если эти элементы прописать в регулярное выражение, тогда все хорошо будет. Может кто-нибудь фиксировал такие изминения
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Я думаю, что у них должны быть стандартная замена элементов к примеру : меняют на __ и еще парачка элементов. Если эти элементы прописать в регулярное выражение, тогда все хорошо будет. Может кто-нибудь фиксировал такие изминения
Помимо того, что периодически бывают изменения, так еще бывает немного разная верстка сайта из-за разных юзер-агентов. По-этому нужно прописывать все значения, которые Вы отловили регуляркой, т.е. чтобы шаблон мог обрабатывать и такое и другое!
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Помимо того, что периодически бывают изменения, так еще бывает немного разная верстка сайта из-за разных юзер-агентов.
Но юзер-агент мы же можем задавать или админы сайта могут в этих данных, что то по менять
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Но юзер-агент мы же можем задавать или админы сайта могут в этих данных, что то по менять
Можем задавать. Но Вы же не будете задавать всегда один и тот же. Лучше делать универсальные решения, тем более принцип, как это делать Вы поняли.
 

ibelieve

Client
Регистрация
24.12.2012
Сообщения
250
Благодарностей
96
Баллы
28
На популярны сайтах это нормальное дело. Там часто меняются всяческие id элементов. Бывает что это значение и вовсе может быть динамическим, т.е меняющимся при каждой загрузке страницы.
...Если планируете более-менее регулярно пользоваться данным шаблоном, то можно попробовать делать предварительный парсинг этих значений с последующей подстановкой. Тогда придется править шаблон реже.
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
..Если планируете более-менее регулярно пользоваться данным шаблоном, то можно попробовать делать предварительный парсинг этих значений с последующей подстановкой.
А как это делать?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Может ссылку скинете на эти уроки
Код:
var login = project.Variables["login"].Value;
var password = project.Variables["password"].Value;

var rnd = new Random();
Tab tab1 = instance.ActiveTab;

//Логин
var logn = tab1.FindElementByXPath("//input[@placeholder = 'Имя ящика']", 0);         
logn.Click();//клик по полю
instance.SendText(login, rnd.Next(250, 500));//вводим с рандомной задержкой в миллисекундах

//пароль
var pass = tab1.FindElementByXPath("//input[@placeholder = 'Пароль']", 0);
pass.Click();//клик по полю
instance.SendText(password, rnd.Next(250, 500));//вводим с рандомной задержкой в миллисекундах

//жмем кнопку Войти
var submit = tab1.FindElementByXPath("//input[@value = 'Войти']", 0);
submit.Click();
 

ibelieve

Client
Регистрация
24.12.2012
Сообщения
250
Благодарностей
96
Баллы
28
А как это делать?
1. В браузере Зеннопостера берете код страницы и отправляете его в Тестер регулярных выражений.
2. В Тестере рег. выр. создаете регулярное выражение которое будет отлавливать нужный id или класс (в Вашем случае "mailbox:login").
3. Вставляете получившееся регулярное выражение в экшен "Взять DOM", предварительно отметив чебокс "Парсить результат".
4. После экшена "Взять DOM" ставите экшен, который будет кликать по нужному элементу или вводить текст (что там у Вас). Только в поле "Значение" у вас уже должен стоять, например, не "mailbox:login", а переменная из экшена "Взять DOM"
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
  • var login = project.Variables["login"].Value;
  • var password = project.Variables["password"].Value;
  • var rnd = new Random();
  • Tab tab1 = instance.ActiveTab;
  • //Логин
  • var logn = tab1.FindElementByXPath("//input[@placeholder = 'Имя ящика']", 0);
  • logn.Click();//клик по полю
  • instance.SendText(login, rnd.Next(250, 500));//вводим с рандомной задержкой в миллисекундах
  • //пароль
  • var pass = tab1.FindElementByXPath("//input[@placeholder = 'Пароль']", 0);
  • pass.Click();//клик по полю
  • instance.SendText(password, rnd.Next(250, 500));//вводим с рандомной задержкой в миллисекундах
  • //жмем кнопку Войти
  • var submit = tab1.FindElementByXPath("//input[@value = 'Войти']", 0);
  • submit.Click();
Интересная программа, только вводятся значения в Логина и пароля в 1-ой строке поиска. Но смысл понятен. Можете поделится уроками по XPath
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

СТЕПАН

Moderator
Регистрация
17.03.2013
Сообщения
951
Благодарностей
353
Баллы
63
Всем привет

Написал бот для отправки писем с почты mail.ru. Пару дней все хорошо работало, сегодня стали появляется ошибки, обратил внимание на то, что везде изменился 1-н элемент в Значениях к примеру mailbox:login на mailbox__login. С чем это может быть связано, может с палился Бот который я написал или у них регулярно такие изменения
используй ввод через эмуляцию клавиатуры, не будет таких хлопот с майлом
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
используй ввод через эмуляцию клавиатуры, не будет таких хлопот с майлом
Как можно задействовать эмуляцию клавиатуры, если не определяется элемент в который нужно внести значения
 

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