Python bilan kod yozib brauzer'ni boshqarish. Boshlovchilar uchun sodda misollar. 18-darsda Selenium IDE'ni bilamiz - endi haqiqiy kod yozamiz!
90 daqiqa
Python kod
5 ta interaktiv
Kirish
Selenium WebDriver nima?
18-darsda Selenium IDE bilan ishladik โ Record/Play, kod yozish kerak emas. Endi WebDriver'ga o'tamiz โ haqiqiy kod yozib brauzer'ni boshqaramiz.
Asosiy atama
Selenium WebDriver โ kod yordamida brauzer'ni boshqarish kutubxonasi. Python, Java, JavaScript va boshqa tillar uchun bor.
Oddiy qilib: Siz Python kod yozasiz - "Brauzer ochib, Login bos" deysiz, kod brauzer bilan ishlaydi, xuddi siz kabi.
๐ก Sodda misol
Pultli avtomashina
Selenium IDE โ bolalar o'yinchog'i (oddiy pult). WebDriver โ professional dronni kompyuter bilan boshqarish. Kuchli, lekin biroz murakkab. Lekin kuch sizda - hamma narsani qila olasiz!
Nima uchun WebDriver?
Kuchli โ IDE'da imkonsiz narsalarni qila olasiz
Tez โ yuzlab testlar bir vaqtda
CI/CD โ Jenkins, GitHub Actions bilan integratsiya
Framework โ Pytest, unittest bilan birga
Maoshingiz โ Selenium WebDriver biluvchi QA: Junior+ darajasi
Nega Python?
Sodda sintaksis โ boshlovchilar uchun ideal
Kam kod โ Java'da 10 qator, Python'da 3 qator
Mashhur โ QA jamoasida 60%+ Python ishlatadi
Ko'p material โ YouTube, kitoblar, blog'lar
Junior uchun
Bu dars juda muhim, lekin tezda hammasini tushunishga harakat qilmang. Asosiy tushunchalarni biling, keyin amalda mashq qilasiz. 3-4 hafta amaliyot kerak!
1-qism
O'rnatish va tayyorgarlik
Birinchi skript yozish uchun 3 narsa kerak: Python, Selenium, brauzer driver.
Saytda biror narsa bilan ishlash uchun avval uni topish kerak:
find_element.pyfrom selenium.webdriver.common.by importBy# ID bo'yicha (eng tez va aniq)
login_btn = driver.find_element(By.ID, "login-btn")
# CSS Selector bo'yicha
search = driver.find_element(By.CSS_SELECTOR, ".search-box")
# XPath bo'yicha
button = driver.find_element(By.XPATH, "//button[text()='Kirish']")
3. Element bilan ishlash
interact.py# Bosish
login_btn.click()
# Matn yozish
email_input.send_keys("test@uzum.uz")
# Tozalash (avval bo'lgan matnni o'chirish)
email_input.clear()
# Matnni olish
welcome_text = title.text# Attribute olish
link_url = link.get_attribute("href")
4. To'liq E2E misol โ Login
login_test.pyfrom selenium import webdriver
from selenium.webdriver.common.by importByimport time
driver = webdriver.Chrome()
driver.get("https://testshop.uz/login")
# Email maydoniga matn yozish
email = driver.find_element(By.ID, "email")
email.send_keys("test@uzum.uz")
# Parol maydoniga
password = driver.find_element(By.ID, "password")
password.send_keys("Pass123!")
# Login tugmasini bosish
driver.find_element(By.ID, "login-btn").click()
# 3 sekund kutish (Dashboard ochilishi uchun)
time.sleep(3)
# Tekshirish - "Welcome" matni borligi
welcome = driver.find_element(By.CLASS_NAME, "welcome-msg")
assert"Welcome"in welcome.text
driver.quit()
print("โ Test muvaffaqiyatli!")
Bu - to'liq professional Login test! Email yozadi, parol yozadi, tugma bosadi, natijani tekshiradi.
๐ฏ Bog'lang
Selenium buyrug'i va vazifasini bog'lang
Har buyruq nima qiladi?
Buyruq
driver.get(url)
element.click()
element.send_keys()
driver.quit()
find_element()
Vazifa
Brauzerni butunlay yopish
URL'ga o'tish (sahifa ochish)
Sahifada elementni topish
Tugmani bosish
Matn yozish (input maydoni)
0 / 5 juft
4-qism
Locator Strategy
Selenium'da elementlarni topishning 8 ta usuli bor. Lekin har biri bir xil emas โ qaysisini tanlash muhim!
8 ta locator turi
By.ID
ID bo'yicha. Eng tez va aniq usul. ID unikal bo'ladi.
driver.find_element(By.ID, "login-btn")
โญ Eng yaxshi - ID bor bo'lsa
By.NAME
Name attribute bo'yicha. Input maydonlar uchun yaxshi.
Bug bo'lmasa - ID. Test ishonchli bo'lishi uchun - CSS Selector. Murakkab joy bo'lsa (matn bo'yicha) - XPath. Boshqa locator topa olmasangiz, dasturchidan ID qo'shishni so'rang!
๐ฏ Locator Classifier
Qaysi locator eng yaxshi?
1-qadam: HTML kodga qarang. 2-qadam: Eng yaxshi locator turi tanlang.
โญ Eng yaxshi: Aniq holat kutadi (visible, clickable, vsh.). Professional QA shu usulni ishlatadi.
Qaysi qachon?
time.sleep() - hech qachon (test sekin bo'ladi). Implicit Wait - kichik loyihalarda. Explicit Wait - professional, aniq holat kutish kerak bo'lganda.
๐ Code Builder
Selenium kod yarating
Vazifani tanlang va Selenium kod ko'ring:
๐ฌ Haqiqiy stsenariy
Click loyihasida birinchi automation skripti
Dushanba, 09:00. Click QA Lead Aziz aka sizga keldi: "Login funksiyamiz har release oldidan tekshiriladi - 8 ta brauzer ร 5 ta scenario = 40 ta test. Manualda 4 soat ketadi."
Sizdagi vazifa: Selenium WebDriver bilan Login automation yozish.
Quyidagi locator'larni ko'ryapsiz: id="email", id="password", id="login-btn". Birinchi kod qatorlari qanday bo'ladi?
Eng to'g'ri kod boshlanishi qaysi?
โก Tezkor tekshiruv
Sayt yuklanadi, lekin element 2-3 sekund keyin ko'rinadi (AJAX). Eng yaxshi yondashuv qaysi?
๐ฏ Amaliyot vaqti
Birinchi Selenium skriptingiz
Endi nazariyani amaliyotga qo'llaymiz. 3 ta vazifa - sodda, lekin amaliy.
๐
Python + Selenium
Bepul. Mac, Windows, Linux uchun. Asosiy kutubxona.