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

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
Всем привет

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

Attachments

Moguai

Client
Joined
Mar 23, 2015
Messages
26
Reaction score
16
Points
3
Я думаю что меняют часто. Я тут регер писал недавно. Работало все норм. А месяц спустя вон сижу с нуля переписываю. Не цепляется за многие элементы.
 

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
Я думаю, что у них должны быть стандартная замена элементов к примеру : меняют на __ и еще парачка элементов. Если эти элементы прописать в регулярное выражение, тогда все хорошо будет. Может кто-нибудь фиксировал такие изминения
 

evgen_po

Client
Joined
Aug 27, 2013
Messages
850
Reaction score
532
Points
93
Я думаю, что у них должны быть стандартная замена элементов к примеру : меняют на __ и еще парачка элементов. Если эти элементы прописать в регулярное выражение, тогда все хорошо будет. Может кто-нибудь фиксировал такие изминения
Помимо того, что периодически бывают изменения, так еще бывает немного разная верстка сайта из-за разных юзер-агентов. По-этому нужно прописывать все значения, которые Вы отловили регуляркой, т.е. чтобы шаблон мог обрабатывать и такое и другое!
 

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
Помимо того, что периодически бывают изменения, так еще бывает немного разная верстка сайта из-за разных юзер-агентов.
Но юзер-агент мы же можем задавать или админы сайта могут в этих данных, что то по менять
 

SergSh

Client
Joined
May 10, 2017
Messages
540
Reaction score
395
Points
63

evgen_po

Client
Joined
Aug 27, 2013
Messages
850
Reaction score
532
Points
93
Но юзер-агент мы же можем задавать или админы сайта могут в этих данных, что то по менять
Можем задавать. Но Вы же не будете задавать всегда один и тот же. Лучше делать универсальные решения, тем более принцип, как это делать Вы поняли.
 

ibelieve

Client
Joined
Dec 24, 2012
Messages
250
Reaction score
96
Points
28
На популярны сайтах это нормальное дело. Там часто меняются всяческие id элементов. Бывает что это значение и вовсе может быть динамическим, т.е меняющимся при каждой загрузке страницы.
...Если планируете более-менее регулярно пользоваться данным шаблоном, то можно попробовать делать предварительный парсинг этих значений с последующей подстановкой. Тогда придется править шаблон реже.
 

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
по placeholder через xpath можно пробовать
Может ссылку скинете на эти уроки
 

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
..Если планируете более-менее регулярно пользоваться данным шаблоном, то можно попробовать делать предварительный парсинг этих значений с последующей подстановкой.
А как это делать?
 

SergSh

Client
Joined
May 10, 2017
Messages
540
Reaction score
395
Points
63
Может ссылку скинете на эти уроки
Code:
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
Joined
Dec 24, 2012
Messages
250
Reaction score
96
Points
28
А как это делать?
1. В браузере Зеннопостера берете код страницы и отправляете его в Тестер регулярных выражений.
2. В Тестере рег. выр. создаете регулярное выражение которое будет отлавливать нужный id или класс (в Вашем случае "mailbox:login").
3. Вставляете получившееся регулярное выражение в экшен "Взять DOM", предварительно отметив чебокс "Парсить результат".
4. После экшена "Взять DOM" ставите экшен, который будет кликать по нужному элементу или вводить текст (что там у Вас). Только в поле "Значение" у вас уже должен стоять, например, не "mailbox:login", а переменная из экшена "Взять DOM"
 

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
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
 

СТЕПАН

Moderator
Joined
Mar 17, 2013
Messages
951
Reaction score
353
Points
63
Всем привет

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

SlavenTyz

Client
Joined
Apr 30, 2018
Messages
1,112
Reaction score
31
Points
48
используй ввод через эмуляцию клавиатуры, не будет таких хлопот с майлом
Как можно задействовать эмуляцию клавиатуры, если не определяется элемент в который нужно внести значения
 

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)