Проверка текста и атрибутов элементов



WebDriverWait(browser, poll_frequency=0.5, timeout=10).until(EC.text_to_be_present_in_element((locator)))

.text_to_be_present_in_element()

EC.text_to_be_present_in_element(locator, text_) — это ожидаемое условие, которое проверяет, содержит ли текст элемента, определенного локатором, заданное подстроковое значение.

locator: — Это может быть одно из значений из класса By, например, By.ID, By.CLASS_NAME, By.XPATH и так далее.

text_: Этот параметр представляет собой текст или подстроку, который вы ожидаете найти внутри текста элемента. С помощью этого параметра вы указываете, какой конкретно текст или часть текста должен содержать элемент для успешного выполнения условия.

Зачем это нужно при парсинге?

При извлечении данных с веб-страниц часто требуется удостовериться, что страница полностью загрузилась и содержит ожидаемую информацию. Это условие позволяет вам подтвердить, что определенный элемент на странице содержит нужный текст, что может служить индикатором успешной загрузки или наличия определенных данных.

Как это работает?

Это условие осуществляет поиск элемента на странице с использованием предоставленного локатора. После этого происходит проверка, содержит ли текст этого элемента заданное значение.

#Определяем локатор и ожидаемый текст
locator = (By.ID, 'message')
expected_text = "Загрузка завершена"

# Используем явное ожидание, чтобы убедиться, что элемент содержит ожидаемый текст
WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element(locator, expected_text))

.text_to_be_present_in_element_value()

EC.text_to_be_present_in_element_value(locator, text_) — это ожидаемое условие в Selenium, которое проверяет наличие определенного текста в значении атрибута value элемента, указанного локатором.

locator: кортеж, содержащий два элемента — способ поиска (By.ID, By.XPATH, и т.д.) и значение для поиска.

text_: Строка текста, который ожидается найти в значении атрибута value элемента.

Зачем это нужно при парсинге?

При парсинге или автоматизации действий на веб-сайтах часто встречаются элементы, такие как текстовые поля (например, поле для ввода пароля или поискового запроса). Это условие позволяет проверить, содержит ли такой элемент определенное значение. Это может быть полезно для проверки того, введено ли какое-то значение в поле ввода или для ожидания, пока значение элемента не обновится после каких-либо действий на странице.

Как это работает?

Условие осуществляет поиск элемента на основе предоставленного локатора. После нахождения элемента происходит проверка, содержит ли его атрибут value указанный текст.

# Определяем локатор и ожидаемый текст

locator = (By.ID, 'search_field')
expected_text = "Query123"

# Используем явное ожидание, чтобы проверить наличие текста в атрибуте value элемента
WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element_value(locator, expected_text))

.text_to_be_present_in_element_attribute()

EC.text_to_be_present_in_element_attribute(locator, attribute_, text_) — это ожидаемое условие, которое проверяет, содержится ли указанный текст в определенном атрибуте элемента, определенного локатором.

locator: Кортеж, состоящий из двух элементов — способа поиска (By.ID, By.XPATH, и т.д.) и значения для поиска.

attribute_: Название атрибута элемента, который вы хотите проверить (например, href, src, alt и т.д.).

text_:Строка текста, который ожидается найти в значении указанного атрибута.

Зачем это нужно при парсинге?

При извлечении данных с веб-страниц часто требуется не только извлекать текстовое содержимое элементов, но и атрибуты этих элементов, такие как href у ссылок, src у изображений и т. д. Это условие позволяет удостовериться, что атрибут элемента содержит определенное значение, что может быть ключевым критерием при выборе элементов для дальнейшего парсинга.

Как это работает?

Это условие выполняет поиск элемента на основе предоставленного локатора. После нахождения элемента осуществляется проверка содержания определенного атрибута этого элемента на наличие заданного текста.

# Определяем локатор, атрибут и ожидаемый текст
locator = (By.ID, 'image_id')
attribute_name = "alt"
expected_text = "Descriptive Image Text"

# Используем явное ожидание, чтобы удостовериться, что атрибут содержит нужный текст
WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element_attribute(locator, attribute_name, expected_text))

.element_attribute_to_include()

EC.element_attribute_to_include(locator, attribute_) — Это ожидаемое условие, которое проверяет, включен ли заданный атрибут в указанный элемент.

locator: Кортеж, состоящий из двух элементов — способа поиска (By.ID, By.XPATH, и т.д.) и значения для поиска элемента.

attribute_: строка, содержащая название атрибута элемента.

Зачем это нужно при парсинге?

В процессе парсинга данных с веб-страницы, иногда важно удостовериться, что элемент содержит конкретный атрибут. Это может быть полезно для фильтрации элементов на основе их атрибутов или для проверки корректности структуры данных. Например, убедиться, что ссылка содержит определенный путь или что изображение относится к определенной категории.

Как это работает?

Это условие выполняет поиск элемента на основе предоставленного локатора. После нахождения элемента осуществляется проверка, содержит ли этот элемент указанный атрибут.

# Определяем локатор и атрибут с ожидаемой подстрокой
locator = (By.ID, 'image_id')
attribute_info = "src"

# Используем явное ожидание, чтобы удостовериться, что элемент содержит заданный атрибут
WebDriverWait(driver, 10).until(EC.element_attribute_to_include(locator, attribute_info))


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: