Как ще намерите локаторите за елементите на уеб страницата?
sobes.tech AI
Отговор от AI
За локализиране на елементи използвам следните подходи, започвайки с най-надеждните:
-
По ID: Уникален идентификатор на елемента. Най-стабилният вариант, ако ID е зададено от разработчиците.
# Търсене на елемент по ID driver.find_element(By.ID, "element_id") -
По клас (име на клас): Търсене по стойността на атрибута
class. Може да бъде по-малко уникално от ID.# Търсене на елемент по име на клас driver.find_element(By.CLASS_NAME, "element_class") -
По CSS селектор: Мощен инструмент, който позволява намиране на елементи по различни атрибути, структура на DOM, псевдокласове и др. Гъвкавост, сравнима с XPath, но синтаксисът е по-опростен и изпълнението по-бързо.
# Търсене на елемент по CSS селектор driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']") -
По XPath: Език за заявки за търсене на възли в XML документ (включително HTML). Позволява намиране на елементи по тяхното положение в DOM, атрибути, текстове. Добро за търсене на елементи без уникални ID/класове или за навигация по родителски/дъщерни елементи. Може да е по-малко ефективно от CSS селектори.
# Търсене на елемент по XPath driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']") -
По име на таг (Tag Name): Търсене на всички елементи с определен таг. Рядко се използва за локализиране на конкретен елемент, по-често за получаване на списък.
# Търсене на всички div елементи driver.find_elements(By.TAG_NAME, "div") -
По текст на линка (Link Text/Partial Link Text): Специално за
<a>елементи (линкове).# Търсене на линк по точен текст driver.find_element(By.LINK_TEXT, "Кликнете тук") # Търсене на линк по частичен текст driver.find_element(By.PARTIAL_LINK_TEXT, "Кликнете") -
По име (Name): Търсене по стойността на атрибута
name. Често използвано за полета във формуляри.# Търсене на елемент по атрибут name driver.find_element(By.NAME, "username")
При избор на локатор следвам следните принципи:
- Уникалност: Локаторът трябва да идентифицира уникално желания елемент.
- Стабилност: Избирам локатори, които е най-малко вероятно да се променят при промени в дизайна или структурата на страницата (предпочитам ID и атрибути, а не позиционен XPath).
- Четливост и поддръжка: Локаторът трябва да е разбираем.
При използване на CSS селектори или XPath се опитвам да избягвам зависимости от дълбоко или абсолютното вложение в структурата на DOM, предпочитам да търся елементи спрямо най-близкия уникален родител или по техните собствени атрибути. Използвам DevTools на браузъра за инспекция на DOM и отстраняване на локализатори.