Python selenium, как задать условия if else опираясь на xpath сайта?
Нужно, чтобы скрипт выполнял разную последовательность действий в зависимости от того, какая информация ВИДНА пользователю. Условно, есть страничка, на ней есть спойлер, скрывающий необходимую ссылку. Этот спойлер появляется рандомно, чаще всего его нет. Но если он есть, то данная ссылка некликабельна для скрипта (selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable), из-за чего он закрывается. Как сделать так, чтобы скрипт проверял наличие этого спойлера, и если он есть, то нажимал на него и далее производил один алгоритм действий, а в случае, если его нет - другой?
Опишу общими словами:
1) найти на странице доказательство того, что базовый контент загрузился (обычно это div - контейнер для контента, который надо парсить)
2) после п.1 xpath-ом искать наличие спойлера (можно с explicit waiting и завернуть в try/catch)
3) если спойлера нет, идти по второй ветке логики парсинга.
Короче идея в том, чтобы проверить, что страница на момент поиска спойлера уже в валидном состоянии, и отсутствие спойлера это не ошибка
Изучил div-контейнеры
В общем, этот спойлер отвечает за отображение данной ссылки (спойлер не открыт -style="overflow: hidden; height: 0px; display: none;", а значит ссылка недоступна для нажатия;
если спойлер открыт - style="overflow: visible;", ссылка доступна для нажатия). Нужно задать условие, при котором он просто будет траить действия: если style...visible => нажать на ссылку
если style...hidden => нажать на спойлер => открыть ссылку.
Или, сделать так, чтобы питон копировал ссылку из этого href и просто переходил напрямую по ссылке без нажатий (не знаю, возможно ли это)
Как это сделать?
Я второй день изучаю питон, и вообще ничего не знаю, извините, если вопросы тупые. :)
PandaNePanda, вам нужно понимать основы html (dom-дерево в браузере), селениума и питона вместе. Если ссылка сразу существует на странице, то никаких if-else не нужно, найдите элемент < a > и из него достаньте href и потом уже открываете страницу с урлом средствами питона
vsenafokse, спасибо, даже с этим он выдает ошибку, можно ли сделать так, чтобы он использовал разные условия в зависимости от того, удалось ли перейти по нужной ссылке (если удалось - спойлера нет, если она некликабельна - спойлер есть)?