Скрипт реєстратор облікових записів на сайті

Розробка скриптів на замовлення. Корисні матеріали та приклади шаблонів Human Emulator.

Як завжди, все починається зі створення нового скрипта. Звичайно, є кілька способів розпочати роботу іншим способом, але їх ми не розглядатимемо.

У стандартному шаблоні є рядки команд, що направляють наш браузер на Google. Ви можете легко перевірити це просто запустивши скрипт. І легко здогадатися, що цей перехід виконується через рядки $browser->navigate(«http://www.google.com»); Оскільки мета моя – квіп, вставляю qip.ru у рядок замість гугла та переходжу на цей сайт для подальшого вивчення.

Реєстрація ховається у формі, що з'являється після натискання посилання «Увійти на сайт». Через меню, що відкривається правому кліку на потрібному елементі, додаю в скрипт рядок $anchor->click_by_inner_text('Увійти на сайт',true); .

На вибір є ще три:

Через те саме меню, але вже видане посилання з текстом «Реєстрація», додаю функцію $anchor->click_by_inner_text(‘Реєстрація’,true); Запустимо скрипт для тесту, що вийшов (від слова «тестувати», а не «тісто»)

Тепер перед нашим поглядом постала реєстраційна форма з необхідними заповнення полями, яких ви, певен, побачили вже сотні. Якщо не тисячі. На погляд форма цілком звичайна і проста. Сподіваюся, жодних сюрпризів у ній не приховано.

До речі, доки не забув, потрібно додати функцію $browser->wait_for(); після $anchor->click_by_inner_text('Реєстрація',true); Вона призупинить виконання наступної після неї частини скрипту до моменту повного провантаження сторінки, а значить він не працюватиме «у неодружену».

Починається найцікавіше. Форму потрібно заповнювати даними, які коженвкотре будуть новими. Навіщо пояснювати не потрібно, сподіваюся. Через той же правий клік на всіх інпутах, складаю список функцій для роботи з ними. Тільки функція повинна містити не click_by (що означає «клікнути по…»), а set_value_by («встановити значення…»). Тоді інформація, що передається нами в функцію, буде заповнювати інпути сайту.

Стоп. При першому погляді на запропоновані варіанти функцій, впадає в око занадто довге ім'я для інпуту «Користувач». Воно виглядає як випадковий набір букв та цифр, і цілком можливо, що це ім'я змінюється під час кожного оновлення сторінки. Отже, варіант set_value_by_name у цій ситуації відпадає. Хоча хвилинку… Функція set_value_by_name може використовуватиме пошуку не тільки атрибут “name” а й “id”. Про всяк випадок варто перевірити, що за айді присвоєно потрібним нам інпутам. Найпростіше і найшвидше це зробити через ДОМ-модель, яка знаходиться в меню «Налагодження».

У верхній частині таблиці «ДІМ-модель» є закладки, які відповідають різні типи об'єктів. Нас цікавлять інпути, отже, відповідну закладку і потрібно відкрити. Перевіряв не дарма - id потрібного поля дійсно має звичайну і, напевно, статичну назву. Тепер, звіряючись з ДОМ-моделлю, легко додати до скрипту функції для роботи з усіма потрібними інпутами.