JavaRush /Курси /Python SELF UA /Заповнення форм: введення тексту і натискання кнопок

Заповнення форм: введення тексту і натискання кнопок

Python SELF UA
Рівень 36 , Лекція 0
Відкрита

1. Вступ до взаємодії з елементами форм

Форми на веб-сторінках - це місця, де починається магія взаємодії. Уявіть форму як таємничий пульт керування, який дозволяє користувачу взаємодіяти із системою. Але замість того, щоб давати інструкції роботу-пилососу, ми передаємо інформацію сайту.

Як вводити текст у текстові поля

Для початку давайте обговоримо, як Selenium дозволяє нам вводити текст у текстові поля. Це робиться за допомогою методу send_keys(). Давайте зануримось у це крок за кроком.

Python

from selenium import webdriver

# Вказуємо шлях до веб-драйвера, це шлях до вашої копії webdriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

# Відкриваємо веб-сторінку
driver.get('http://example.com/login')

# Знаходимо поле введення (наприклад, за id) і вводимо текст
username_field = driver.find_element_by_id('username')
username_field.send_keys('мій_супер_акаунт')

password_field = driver.find_element_by_id('password')
password_field.send_keys('мій_супер_секретний_пароль')

У цьому простому прикладі ми відкриваємо сторінку і знаходимо елементи введення за їх ID. Після цього ми використовуємо метод send_keys(), щоб передати текст нашим полям. Так, це так само просто, як copy-paste на наступному рівні!

Важливий трюк для заповнення текстових полів

Якщо вам здається, що форма поводиться дивно, можливо, у полі введення вже є текст. Перш ніж ввести новий текст, очистіть старий за допомогою методу clear().

Python

username_field.clear()
username_field.send_keys('нове_значення')

Цей маленький трюк врятує вас від зайвого головного болю, чесне слово!

2. Натискання на кнопки

Тепер, коли наші поля введення заповнені, час натиснути кнопку, наприклад, для відправки форми. З Selenium це робиться за допомогою методу click(). Приблизно так, як ви натискаєте кнопку "Дивитися більше мемів", тільки програмно.

Python

# Знаходимо кнопку за її ім'ям і клікаємо
login_button = driver.find_element_by_name('login')
login_button.click()

І ось так, наш Selenium-скрипт став майстром клікерів, здатним на більше, ніж тиснути кнопку "Зробити вибір" в іграх!

Приклади використання

Давайте розглянемо приклад, який об'єднує використання методів send_keys() та click() для заповнення та відправки форми реєстрації.

Python

# Відкриваємо сторінку реєстрації
driver.get('http://example.com/register')

# Заповнюємо форму реєстрації
driver.find_element_by_id('first_name').send_keys('Іван')
driver.find_element_by_id('last_name').send_keys('Іванов')
driver.find_element_by_id('email').send_keys('ivan@example.com')
driver.find_element_by_id('password').send_keys('суперСекрет123')

# Натискаємо кнопку "Зареєструватися"
register_button = driver.find_element_by_css_selector('.register-button')
register_button.click()

Цей простий приклад показує, як ви можете автоматизувати процес реєстрації на сайті. Це може бути корисним для тестування форми реєстрації та симуляції активності користувачів.

3. Обробка примхливих форм

Часом сторінки люблять пожартувати над вами. Ви натискаєте кнопку, і нічого не відбувається. Або ще гірше — сторінка видає помилку. Давайте обговоримо кілька поширених проблем та способів їх вирішення.

Робота з динамічними елементами

Іноді елементи на сторінці завантажуються не відразу. У таких випадках ваш скрипт може спробувати взаємодіяти з елементом до його завантаження. Це як починати готувати омлет, перш ніж яйця дістали з холодильника.

Щоб уникнути цих примх, використовуйте очікування. Selenium дозволяє вам зачекати, поки елемент стане доступним:

Python

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Чекаємо, поки елемент не стане клікабельним, перед тим як натиснути
register_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.register-button'))
)
register_button.click()

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

Взаємодія з невидимими елементами

Деякі елементи на сторінці можуть бути невидимими — наприклад, приховані кнопки або поля. Це може викликати помилку при спробі взаємодії. У такому випадку ви можете зробити елемент видимим за допомогою JavaScript:

Python

driver.execute_script("arguments[0].style.visibility='visible';", hidden_element)
hidden_element.click()

Цей метод дозволяє вам взаємодіяти з елементами, які з якихось причин приховані.

4. Практичне застосування: автоматизація форм

Тепер, коли ми розібралися, як взаємодіяти з формами, давайте уявимо, де це може застосовуватись у реальному житті.

Ваш начальник вирішив, що всі повинні заповнювати щоденні звіти через веб-форму. А ви, природно, хочете трохи автоматизувати цей рутинний процес. З Selenium ви можете створити скрипт, який автоматично заповнює й надсилає форму з даними вашого звіту кожного дня.

Приклад автоматизації звіту

Уявіть, що у нас є сайт із формою для денного звіту. Форма включає в себе поля для вашого імені, відділу та звіту про виконану роботу. Давайте автоматизуємо це:

Python

driver.get('http://example.com/daily_report')

# Заповнюємо форму звіту
driver.find_element_by_id('name').send_keys('Анна Петрова')
driver.find_element_by_id('department').send_keys('Технології')
driver.find_element_by_id('report').send_keys('Сьогодні виправила всі баги!')

# Надсилаємо форму
submit_button = driver.find_element_by_id('submit')
submit_button.click()

Такий скрипт може зекономити дорогоцінний час і усунути можливість людської помилки. Майте на увазі, що для складних форм потрібно тестувати кожен крок і враховувати можливі помилки.

Отже, ми підійшли до кінця нашої лекції на сьогодні! Сьогодні ми навчилися вводити текст у поля та натискати кнопки як системи онлайн-анкети, що дає вам неймовірну міць автоматизації вашої взаємодії з веб-сторінками.

Продовжуйте експерименти з Selenium і залишайтесь із нами, щоб дізнатися більше про те, як перетворити свій браузер у справжню машину автоматизації!

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ