Пахш кардан ва ворид кардан
Ёфтани элементҳо — нисфи кор. Акнун амал карданро меомӯзем: чоп кардан, пахш кардан, байрақчаҳоро қайд кардан ва аз рӯйхатҳо интихоб кардан.
Ворид кардани матн
from selenium.webdriver.common.keys import Keys
field = driver.find_element(By.NAME, "q")
field.clear() # он чиро, ки буд, пок кардан
field.send_keys("қурби доллар") # чоп кардан
field.send_keys(Keys.ENTER) # Enter-ро пахш кардан
send_keysчунон чоп мекунад, ки гӯё одам тугмаҳоро пахш мекунад, ва ба он чи дар майдон аллакай ҳаст, илова мекунад. Бинобар ин аввалclear();- тугмаҳо —
Keys.ENTER,Keys.TAB,Keys.ESCAPE,Keys.BACKSPACE, тирчаҳо; онҳоро бо матн часпондан мумкин:send_keys("матн" + Keys.ENTER); - қимати майдон —
field.get_attribute("value").
Пахш кардан
driver.find_element(By.CSS_SELECTOR, "button[type=submit]").click()
click() элементро пахш мекунад. Барои байрақчаҳо (checkbox) пахш ҳолатро иваз мекунад, бинобар ин аввал ба is_selected() менигаранд:
if checkbox.is_selected() != should_be_on:
checkbox.click()
Гузариндаҳо (radio)-ро танҳо дар варианти лозимӣ пахш мекунанд — дигарон дар гурӯҳ худашон бардошта мешаванд.
Рӯйхатҳои афтанда
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element(By.ID, "city"))
select.select_by_visible_text("Хуҷанд") # аз рӯи матне, ки одам мебинад
select.select_by_value("khj") # аз рӯи атрибути value
select.select_by_index(2) # аз рӯи рақам
select.first_selected_option.text # ҳоло чӣ интихоб шудааст
[o.text for o in select.options] # ҳамаи вариантҳо
Вариант матни намоён («Хуҷанд») ва value-и пинҳон («khj») дорад — инҳо чизҳои гуногунанд. Агар вариант набошад, select_by_… NoSuchElementException мепартояд.
Хулоса
clear(), баъдsend_keys(...),Keys.ENTER;click(); байрақчаҳо — аввалis_selected();Select:select_by_visible_text,select_by_value,first_selected_option;NoSuchElementException, агар элемент ё вариант набошад.