Пуркунии худкори форма
Ҳама чизро якҷоя мекунем: барнома худаш формаи бақайдгириро пур мекунад, мефиристад ва месанҷад, ки сайт чӣ ҷавоб дод.
Пур кардан аз рӯи луғат
data = {"name": "Анис", "email": "anya@mail.ru", "age": "15"}
for name, value in data.items():
fields = driver.find_elements(By.NAME, name)
if not fields:
continue # чунин майдон нест — мегузарем
fields[0].clear()
fields[0].send_keys(value)
- майдонҳоро аз рӯи
nameмеҷӯянд — он аз синфҳо ваidустувортар аст, онро худи сайт ҳангоми фиристодан истифода мебарад; - майдонро пеш аз ворид кардан пок мекунанд — дар он метавонист қимат монда бошад;
find_elementsба ҷоиfind_elementимкон медиҳад, ки майдони мавҷуднабударо ором гузарем.
Гузариндаҳо ва рӯйхатҳо
driver.find_element(By.CSS_SELECTOR, "input[name=gender][value=f]").click()
Select(driver.find_element(By.NAME, "plan")).select_by_visible_text("Премиум")
Фиристодан ва натиҷа
Баъди пахши тугма сайт метавонад гуногун ҷавоб диҳад — бо муваффақият ё бо хатоҳо. Ҳар кадоме аз вариантҳоро интизор мешаванд, баъд менигаранд, ки кадомаш рух дод:
WebDriverWait(driver, 5).until(
lambda d: d.find_elements(By.ID, "success") or d.find_elements(By.CSS_SELECTOR, ".error")
)
if driver.find_elements(By.ID, "success"):
print("Тайёр!")
else:
print([e.text for e in driver.find_elements(By.CSS_SELECTOR, ".error")])
Масъулият
Танҳо чизеро худкор кунед, ки ба он ҳуқуқ доред: ҳисобҳои худ, сайтҳои худ, вазифаҳои корӣ. Бисёр сайтҳо дар қоидаҳо роботҳоро манъ мекунанд ва бо капча муҳофизат мешаванд; гузаштан аз чунин муҳофизат мумкин нест. Формаҳоро хеле зуд-зуд нафиристед — ин сарбории сервери бегона аст.
Минбаъд чӣ
- Санҷиши сайтҳои худ: Selenium +
pytestмесанҷанд, ки баъди ҳар тағйирот бақайдгирӣ, сабад ва пардохт кор мекунанд; - Page Object — барои ҳар саҳифаи сайт синф бо методҳои
login(),search(): тестҳо кӯтоҳтар ва фаҳмотар мешаванд; - Playwright — китобхонаи навтар бо ғояҳои монанд ва интизориҳои дарунсохт.
Хулоса
- пур кардан аз рӯи луғат:
find_elements(By.NAME, …),clear(),send_keys(); - гузариндаҳо — пахш дар
[name=…][value=…], рӯйхатҳо —Select; - баъди фиристодан — муваффақият ё хатоҳоро интизор шудан ва натиҷаро хондан;
- худкор кардан — танҳо бо иҷозат.