Sobes.tech
Junior

Seleniumде кандай локаторлор бар?

sobes.tech AI

AIден жооп

Selenium-деги локаторлор веб-элементтерди издөө үчүн механизмдер деп аталат. Негизги түрлөрү:

  • ID: Элементти анын id атрибуту аркылуу табууга мүмкүндүк берет. Эң тез жана ишенимдүү жол, эгер ID уникалдуу жана туруктуу болсо.
  • Name: Элементти анын name атрибуту аркылуу табууга мүмкүндүк берет. IDге караганда азыраак ишенимдүү, анткени name ар дайым уникалдуу эмес.
  • Class Name: Элементтерди алардын class атрибуту аркылуу табууга мүмкүндүк берет. Элементтердин тизмесин кайтарат, анткени бир нече элемент бир эле класска ээ болушу мүмкүн.
  • Tag Name: HTML теги аталышы боюнча (мисалы, div, a, input) элементтерди табууга мүмкүндүк берет. Тизмени кайтарат.
  • Link Text: Туура шилтеменин текстине ылайык <a> (ссылка) элементин табууга мүмкүндүк берет.
  • Partial Link Text: Тексттин бөлүгүн салыштырган <a> (ссылка) элементин табууга мүмкүндүк берет.
  • CSS Selector: CSS селекторлор синтаксиси аркылуу элементтерди издөөнүн күчтүү жана ийкемдүү жолу. Атрибуттар, тегдер, класстар, иерархия жана абалдар боюнча издөө жүргүзүүгө мүмкүндүк берет.
  • XPath: XML/HTML документтин түзүлүшүнө негизделген эң күчтүү жана ийкемдүү издөө жолу. Кыйын жолдорду түзүүгө, атрибуттар, мазмун жана жайгашкан жер боюнча издөө жүргүзүүгө мүмкүндүк берет.

Колдонуу мисалдары:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

Локаторду тандоо веб-элементтин туруктуулугуна жана баракчанын түзүлүшүнө жараша болот. Туура түзүлүшү үчүн ID, CSS Selector же XPath колдонуу сунушталат.