Selenium. Python. Не могу получить содержимое тега
Помогите, пожалуйста, понять, по какой причине не получаю содержимое тега в данном случае. Сайт: https://b2c.passport.rt.ru/ - Раздел Регистрация
Сначала пытаюсь понять верный ли раздел:
page_name = pytest.driver.find_element(By.XPATH, xpath)
page_name = page_name.text
assert page_name == 'Регистрация'
Данный код успешно выполняется.
Далее пытаюсь понять внутри тега Региона всегда ли Москва г:
field_region = pytest.driver.find_element(By.XPATH, '//*[@id="page-right"]/div/div/div/form/div[2]/div/div/span[1]/span[1]')
field_region = field_region.text
assert field_region == 'Москва г'
И вот уже этот код не работает: AssertionError: assert '' == 'Москва г' Почему пустое значение? Ведь этот тег точно содержит название региона.
Ответы (1 шт):
Автор решения: ExtraCamelot
→ Ссылка
В итоге удалось найти ответ на собственный вопрос. Проблема оказалась в том, что родительский элемент имел css-свойство display: none.
Нужно было ему изменить свойство и тест заработает:
field_region = pytest.driver.find_element(By.XPATH,
'//*[@id="page-right"]/div/div/div/form/div[2]/div/div/span[1]')
pytest.driver.execute_script("arguments[0].style.display = 'block';", field_region)
field_region = pytest.driver.find_element(By.XPATH,
'//*[@id="page-right"]/div/div/div/form/div[2]/div/div/span[1]/span[1]')
field_region = field_region.text
assert field_region == 'Москва г'

