Я хочу создать бота Instagram, который следит за всеми подписчиками страницы.
У меня есть эта строка кода
buttons = driver.find_elements_by_xpath("//button[contains(.,'Follow')]")
Проблема в том, что он также нажимает кнопки, за которыми я уже следил, и они пишут «Подписка на них». Есть ли способ нажать ТОЛЬКО кнопки «Подписаться», а не все, что содержит слово «Подписаться»?
перед нажатием на кнопку получить текст с кнопки и проверить, является ли это Following
или Follow
. Вы также можете проверить, не имеют ли кнопки Following
и Follow
другие разные элементы, т.е. какой-то класс, атрибут и т.д.
Xpath допускает И и НЕ. См. ниже:
buttons = driver.find_elements_by_xpath("//button[contains(.,'Follow') and not(contains(.,'Following')) ]")
Вы можете написать xpath для такой ситуации, добавив к нему дополнительные условия. Вы можете использовать любой из следующих xpath-
Отвечает ли это на ваш вопрос? Как искать узел по точному совпадению текста с помощью Xpath в веб-драйвере