Selenium - bu sizning asosiy vazifalaringizni avtomatlashtirishi mumkin bo'lgan kuchli vositadir va veb-saytlarni o'chirish uchun ishlatilishi mumkin. Takroriy vazifalarni avtomatlashtirish ko'p vaqtni tejashga yordam beradi. Agar siz dasturchi bo'lsangiz yoki oddiygina ishbilarmon bo'lsangiz, selen va python haqidagi bilimingiz kundalik vazifalaringiz uchun juda foydali bo'lishi mumkin.

Bu yangi boshlanuvchilar uchun foydali maqola. Agar siz selen yoki hatto piton haqida hech narsa bilmasangiz, tashvishlanmang, men ushbu maqolani har kim tushunadigan va ishlatishi mumkin bo'lgan tarzda soddalashtirdim.

Biz nima qilmoqchimiz?

To'liq maqolani o'qishdan oldin, ushbu maqoladan nimani o'rganishingiz / bilishingizni tushunib olaylik.

  1. Avtomatlashtirish uchun python, selenium va chromedriverni qanday o'rnatish va sozlash
  2. Selenning asoslari
  3. Veb-saytlarni qanday avtomatlashtirish kerak — Biz tasodifiy veb-saytga oldindan belgilangan hisobga olish ma'lumotlari bilan kiramiz, tizimga kirgandan so'ng ba'zi ma'lumotlarni olamiz, masalan, tizimga kirgan foydalanuvchi nomi va veb-saytdan chiqish.

Talablar:

Kodlashni boshlashdan oldin bir nechta vositalarga ega bo'lishingiz kerak.

  1. Python— Tizimingizda python oʻrnatilganligiga ishonch hosil qiling. Siz shunchaki command prompt or terminal ga o'tishingiz va Windows-da python --version yozishingiz mumkin va Linux/Macos uchun python -version ishlashi mumkin. Agar sizda python o'rnatilmagan bo'lsa, bu erda o'rnatish havolasi.

"Python Python.org-ni yuklab oling"

Mening holimda men python 3.9.7 versiyasidan foydalanmoqdaman

2. Selen:

Python-ni o'rnatganingizdan so'ng, biz selenium kutubxonasini o'rnatishimiz kerak, bu bizga avtomatlashtirishda yordam beradi. Kutubxona allaqachon yozilgan kod yoki biz foydalanishimiz mumkin bo'lgan vositadir. Shunday qilib, Selenium kutubxonasida veb-brauzerlar bilan o'zaro aloqada bo'lish va buyruqlarimizni yuborishimizga yordam beradigan ba'zi oldindan tuzilgan funktsiyalar mavjud.

Selenni o'rnatish buyrug'i: pip install selenium

Bu sizning tizimingizda selenni mahalliy sifatida o'rnatadi.

3. Chromedriver:

WebDriver ko'plab brauzerlarda veb-ilovalarni avtomatlashtirilgan sinovdan o'tkazish uchun ochiq manbali vositadir. Chromedriver bizga veb-sahifalarga tashrif buyurish uchun skriptimiz orqali boshqarishimiz mumkin bo'lgan muhit yoki brauzerni taqdim etadi.

Yuklab olish havolasi: ChromeDriver — Chrome uchun WebDriver (chromium.org)

Ushbu darslik uchun bizga kerak bo'lgan hamma narsa shu.

Endi biz kodimizni sozlashimiz kerak.

Eslatma: Tizimingizda o'rnatilgan chromedriver va Chrome brauzeringizning versiyalari bir xil ekanligiga ishonch hosil qiling. Agar siz Chrome drayveri saytidan so'nggi barqaror versiyani yuklab olayotgan bo'lsangiz, Chrome brauzeringiz eng so'nggi versiyaga yangilanganligiga ishonch hosil qiling. aks holda siz xatolarga duch kelasiz.

Kodni sozlash

  1. Bizning kodimiz saqlanadigan bitta papka yarating. O'sha jildga chromedriver.exeni qo'shing, ehtimol uni yuklab olganingizdan so'ng zip olasiz. Uni ajratib oling va unda .exe fayli bo'ladi.

2. Python faylimizni yarataylik. Men uni test.py deb nomladim

Shunday qilib, mening selenium jildim o'xshash bo'ladi.

Kodlash

avval biz kerakli kutubxonalarni import qilamiz. Quyidagi kodni test.pyfaylingizga qo'shing.

from selenium import webdriver

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

Bu barcha selen kutubxonalari biz talab qiladigan turli xil xususiyatlarga ega.

Veb-brauzer bilan bog'lanish va ulanishni o'rnatish va uni boshqarish uchun birinchi import webdriver talab qilinadi.

webDriverWait — Bu funksiya/klass bizga operatsiyalarimizda kutish vaqtini qo‘shishga yordam beradi. Ba'zan bizning avtomatizatsiyamizda server javobini kutishimiz kerak bo'ladi va veb-sahifa yuklanayotganda, wait funktsiyalari u erda yashirin va aniq kutishni qo'shishga yordam beradi. Misol uchun, sizda so'z yuborganingizda satrlar yoki nomlar kombinatsiyasini yaratadigan veb-saytingiz bor. Shunday qilib, biz veb-sahifa yoki veb-sayt yaratilgan ma'lumotlarni yuklashini kutishimiz kerak.

By & EC — Bu funksiyalar Xpath yoki CSS xossalari bilan kiritish maydonlari, tugmalar, matn va boshqalar kabi veb-elementlarni oson tanlash imkonini beradi.

Options - Bu bizning veb-drayvimizga qo'shimcha imkoniyatlar beradi. Chrome boshsiz rejimda yoki jonli rejimda ishlashi mumkin. Boshsiz - bu bizning kodimiz veb-saytlarga tashrif buyuradi va ma'lumotlarni o'chirib tashlaydi va biz bu jarayonni ko'rmaymiz. Biz to'g'ridan-to'g'ri ma'lumotlarni/natijani olamiz.

Boshqa tomondan, agar siz brauzerni ochmoqchi bo'lsangiz, sizning oldingizda tizimingizda ochilishi kerak, avtomatik kiritishni kiriting va siz kodlagan tugmani bosing. boshsiz rejimni o'chirib qo'yishingiz kerak. Sukut bo'yicha u o'chirilgan.

Endi keyingi kodga o'tamiz.

options = webdriver.ChromeOptions()
# options.add_argument('--headless')
options.add_experimental_option('excludeSwitches', ['enable-logging'])
web = webdriver.Chrome(options=options,executable_path='chromedriver.exe')

Ko'rib turganingizdek, headless option ni qanday qo'shishni hozircha biz izohladik, chunki men sizga avtomatlashtirish qanday ishlashini ko'rsatmoqchiman.

oxirgi satrga e'tibor qarating: web - bu chromedriver xususiyatlariga ega bo'lgan bizning ob'ektimiz. Endi biz barcha funksiyalarimizni ushbu xususiyatda ishga tushiramiz.

1-qadam: Brauzerni ishga tushirish va veb-saytga tashrif buyurish

Shunday qilib, keling, avtomatlashtirish uchun har qanday veb-saytni tanlaylik. Bu mening oddiy onlayn do'kon operatsiyalari loyihalarimdan biri.

Kirish / Ro'yxatdan o'tish (000webhostapp.com)

veb-sayt havolasini nusxalash va olish so'rovini bosing.

web.get("https://osmphp.000webhostapp.com/views/login.php");

Endi kodni ishga tushiring. Ushbu get buyrug'i brauzerni ochishi va sizga kirish sahifasini ko'rsatishi kerak.

Tabriklaymiz!! Siz hozirgina brauzerni muvaffaqiyatli ochdingiz va selen kodi orqali veb-saytga tashrif buyurdingiz. Bu siz hamma narsani to'g'ri o'rnatganingizni va sozlaganingizni anglatadi.

Ushbu bosqichda siz brauzerni ocholmasangiz yoki biron bir xatoga duch kelsangiz, sharhlarda qoldiring. Men sizga albatta yordam beraman.

2-qadam: Veb-saytga kirish

Ushbu veb-sayt OTP so'ramaydigan hisob ma'lumotlari yordamida ro'yxatdan o'tishingiz mumkin. Ushbu kodni to'ldirganingizda ro'yxatdan o'tish sahifasini avtomatlashtirishni sizga qoldiraman.

Sinov uchun soxta hisob ma'lumotlari:

elektron pochta: [email protected]

parol: 123123

Kirish maydonlariga kirish ma'lumotlarini kiritishimiz kerak. Buning uchun biz ushbu kiritish maydonlarini tanlashimiz va kod orqali kiritishimiz kerak, bu bizning asosiy talabimiz.

Endi bunga erishish uchun veb-sahifadagi HTML elementlarini noyob tarzda aniqlashimiz kerak. Elementlarni aniqlash JS yo'li, CSS ID, Xpath / to'liq XPath orqali amalga oshirilishi mumkin. Hammasi biroz bir xil. Men Full Xpath-dan foydalanishni yaxshi ko'raman, u to'liq noyob identifikatorlarni beradi. Shunday qilib, yuqoridagi skrinshotda ko'rsatilganidek, Xpath of Email manzilini va parol maydoniga o'xshashni nusxalang.

try:
    # create a field object
    email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input")))
    # click on it to enable the input field
    email.click()
    # insert the input using send_keys function
    email.send_keys("[email protected]")

except:
  pass

Shunday qilib, kod yaxshi sharhlangan, lekin men hali ham jarayonni tushuntiraman.

Har qanday ma'lumot berish uchun biz 3 ta asosiy qadamni bajarishimiz kerak

a. Veb-sahifadagi kiritish maydonini toping - XPath yordamida. Quyida kod kiritish maydonini tanlash ishlarini bajarmoqda

email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input")))

b. Kirish kiritish uchun elementni bosing / tanlang — click usuli kiritish maydonini tanlaydi.

c. Kirish kiritish — send_keys("inputvalue") bu funksiya tanlangan elementga qo'shtirnoq ichida berilgan qiymatni yuboradi.

Xuddi shunday, Xpath yordamida parol maydoni va tugmani tanlang va tugma uchun faqat click usulidan foydalaning.

shundan so'ng siz veb-saytga kirasiz. To'liq kod github havolasi quyida keltirilgan. Iltimos, ma'lumotlarni chop etish va chiqish jarayoni uchun uni tekshiring.

Loyiha kodi GitHub havolasi: https://github.com/dhgavali/selenium-login-webpage-automation

O'qiganingiz uchun tashakkur! Umid qilamanki, bu maqolada hamma narsa aniq bo'ldi. Dasturiy taʼminotni ishlab chiqish, avtomatlashtirish va soʻnggi texnologiyalar yangilanishlari bilan taʼminlanish uchun kuzatib boring.

Men kimman?

Ulanamiz 🤝😃

Portfolio: Xush kelibsiz — Bosh sahifa (dhgavali.me)

LinkedIn: Dhananjay Gavali | LinkedIn