CodeGym /Kurslar /Python SELF AZ /Formaların doldurulması: mətn daxil etmək və düymələri sı...

Formaların doldurulması: mətn daxil etmək və düymələri sıxmaq

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Form elementləri ilə qarşılıqlı əlaqəyə giriş

Veb-səhifələrdə formalar - qarşılıqlı əlaqənin başladığı yerlərdir. Formanı istifadəçi ilə sistem arasında sirli idarəetmə paneli kimi düşünün. Amma robot-tozsoranı idarəetmə təlimatları vermək yerinə, sayta məlumat təqdim edirik.

Mətn sahələrinə mətn daxil etmək necə olur?

Başlanğıc üçün gəlin müzakirə edək, Selenium bizə mətn sahələrinə mətn daxil etməyi necə imkan verir. Bu send_keys() metodu vasitəsilə edilir. Gəlin addım-addım bunun içinə dalış edək.

Python

from selenium import webdriver

# Webdriver yolunu təyin edirik, bu sizin webdriver surətinizə gedən yoldur
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

# Veb-səhifəni açırıq
driver.get('http://example.com/login')

# Giriş sahəsini tapırıq (məsələn, id ilə) və mətn daxil edirik
username_field = driver.find_element_by_id('username')
username_field.send_keys('mənim_super_hesabım')

password_field = driver.find_element_by_id('password')
password_field.send_keys('mənim_super_gizli_parolum')

Bu sadə nümunədə biz səhifəni açırıq və sahələri ID-lərinə görə tapırıq. Daha sonra send_keys() metodundan istifadə edərək mətnimizi sahələrə ötürürük. Hə, bu elə copy-paste-i növbəti səviyyəyə qaldırmaq kimidir!

Mətn sahələrinin doldurulması üçün vacib hiylə

Əgər sizə elə gəlirsə ki, forma özünü qəribə aparır, ola bilsin ki, giriş sahəsində artıq mətn var. Yeni mətn daxil etməzdən əvvəl köhnə mətni clear() metodu ilə təmizləyin.

Python

username_field.clear()
username_field.send_keys('yeni_dəyər')

Bu kiçik hiylə sizi artıq baş ağrılarından xilas edəcək, and olsun ki!

2. Düymələrə klikləmək

İndi, artıq giriş sahələrimizi doldurduqdan sonra, formanı göndərmək üçün düyməyə klikləmək vaxtıdır. Selenium ilə bunu click() metodu ilə etmək mümkündür. Bu, haradasa "Daha çox memlərə bax" düyməsinə klikləməyə bənzəyir, amma proqramlaşdırma ilə.

Python

# Düyməni adına görə tapırıq və klikləyirik
login_button = driver.find_element_by_name('login')
login_button.click()

Bax belə, bizim Selenium-skriptimiz artıq klikləmə ustasına çevrildi, hansı ki, "Seçim et" düyməsinə klikləməkdən daha çox şey bacarır!

İstifadə nümunələri

Gəlin, send_keys()click() metodlarının qeydiyyat formasını doldurmaq və göndərmək üçün necə istifadə edildiyini bir nümunə ilə nəzərdən keçirək.

Python

# Qeydiyyat səhifəsini açırıq
driver.get('http://example.com/register')

# Qeydiyyat formasını doldururuq
driver.find_element_by_id('first_name').send_keys('İvan')
driver.find_element_by_id('last_name').send_keys('İvanov')
driver.find_element_by_id('email').send_keys('ivan@example.com')
driver.find_element_by_id('password').send_keys('superGizli123')

# "Qeydiyyatdan keç" düyməsinə klikləyirik
register_button = driver.find_element_by_css_selector('.register-button')
register_button.click()

Bu sadə nümunə göstərir ki, necə bir saytda qeydiyyat prosesini avtomatlaşdıra bilərsiniz. Bu, qeydiyyat formasını test etmək və istifadəçi aktivliyini simulyasiya etmək üçün faydalıdır.

3. Kaprizli formalara işləmə

Bəzən səhifələr sizinlə "zarafat" etmək istəyir. Siz düyməni sıxırsınız, və heç nə baş vermir. Və ya daha da pis — səhifə səhv göstərir. Gəlin bir neçə geniş yayılan problemləri və onların həll yollarını müzakirə edək.

Dinamik elementlərlə iş

Bəzən səhifədə elementlər dərhal yüklənmir. Belə hallarda sizin skriptiniz elementlə onun yüklənməsindən əvvəl qarşılıqlı əlaqəyə çalışa bilər. Bu, yumurtaları soyuducudan çıxarmamışdan əvvəl omlet hazırlamağa başlamağa bənzəyir.

Bu kaprizlərdən qaçmaq üçün gözləmələrdən istifadə edin. Selenium element hazır olana qədər gözləməyə imkan verir:

Python

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

# Elementin klik edilməyə uyğun hala gəlməsini gözləyirik, sonra klik edirik
register_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.register-button'))
)
register_button.click()

WebDriverWait istifadə edərək Selenium-a elementi hazır olana qədər gözləməyi tapşıra bilərsiniz. Bu, sizin skriptinizin etibarlılığını əhəmiyyətli dərəcədə artırır.

Görünməyən elementlərlə qarşılıqlı əlaqə

Səhifədə bəzi elementlər görünməz ola bilər — məsələn, gizli düymələr və ya sahələr. Bu, qarşılıqlı əlaqə cəhdində səhvə səbəb ola bilər. Belə hallarda, elementi JavaScript istifadə edərək görünən edə bilərsiniz:

Python

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

Bu üsul sizə hər hansı səbəblə gizli olan elementlərlə qarşılıqlı əlaqə imkanı verir.

4. Praktiki tətbiq: formaların avtomatlaşdırılması

İndi, artıq formalarla necə işləməli olduğumuzu öyrəndik, gəlin baxaq ki, bunlar real həyatda harada işə yaraya bilər.

Rəhbəriniz qərara gəlib ki, hamı gündəlik hesabatları veb-forma ilə doldurmalıdır. Amma siz, təbii ki, bu monoton prosesi bir az avtomatlaşdırmaq istəyirsiniz. Selenium ilə gündəlik hesabat məlumatlarınızı avtomatik doldurub göndərən bir script yarada bilərsiniz.

Hesabatın avtomatlaşdırılması nümunəsi

Gəlin təsəvvür edək ki, bizim gündəlik hesabat üçün bir forma olan saytımız var. Forma adınızı, bölmənizi və tamamlanmış iş haqqında hesabat sahələrini əhatə edir. Gəlin bunu avtomatlaşdıraq:

Python

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

# Hesabat formasını doldururuq
driver.find_element_by_id('name').send_keys('Anna Petrova')
driver.find_element_by_id('department').send_keys('Texnologiyalar')
driver.find_element_by_id('report').send_keys('Bu gün bütün səhvləri düzəltdim!')

# Formanı göndəririk
submit_button = driver.find_element_by_id('submit')
submit_button.click()

Bu cür script dəyərli vaxtınıza qənaət edə bilər və insan səhvlərini aradan qaldıra bilər. Əsas odur ki, mürəkkəb formalarda hər bir addımı test edəsiniz və mümkün səhvləri nəzərə alasınız.

Beləliklə, bu günki mühazirəmizin sonuna gəldik! Bu gün biz öyrəndik necə mətni sahələrə yazmaq və düymələri basmaqla veb səhifələrlə avtomatlaşdırılmış şəkildə işləmək olar, bu isə sizin veb-interfeyslərlə işinizi əməlli-başlı asanlaşdıracaq.

Selenium ilə eksperimentlərə davam edin və bizimlə qalın, çünki sizə brauzerinizi əsl avtomatlaşdırma maşınına çevirməyin yollarını öyrədəcəyik!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION