Гузариш ба мундариҷа
Мавзӯи 3 аз 6

Пахш кардан ва ворид кардан

Ёфтани элементҳо — нисфи кор. Акнун амал карданро меомӯзем: чоп кардан, пахш кардан, байрақчаҳоро қайд кардан ва аз рӯйхатҳо интихоб кардан.

Ворид кардани матн

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, агар элемент ё вариант набошад.