Как кликнуть по елементу на странице поиска google с помощью Selenium Python?

Доброго времени суток!

Столкнулся с очень простой на первый взгляд проблемой,
но уже которое время не могу ее решить и прошу вас о помощи.
Работаю с Selenium на Python и мне нужно прокликать примерно
20 элементов на поисковой странице google по рандомному запросу.
Приложу пример элементов ниже, суть в том что после раскрытия елементов
Гугл генерирует новые такие элементы

Проблема:

Не удается кликнуть по елементу. Мне нужно будет кликать по существующим и потом по новым, сгенерированым елементам в этом блоке:
Страница поиска google

Пробовал кликать по xpath, собрав все елементы:

xpath = '//*[@id="qmCCY_adG4Sj3QP025p4__16"]/div/div/div[1]/div[4]'
all_elements = driver.find_element(By.XPATH, value=xpath)
for element in all_elements:
    element.click()
    sleep(2)

Важное замечание!
id у xpath постоянно меняется и генерируется другой на стороне google

Пробовал кликать по класу class="r21Kzd"

Пробовал кликать по селектору: #qmCCY_adG4Sj3QP025p4__16 > div > div > div.wWOJcd > div.r21Kzd

Ошибки

Это когда пытаюсь кликать с помощью xpath:
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="vU-CY7u3C8PIrgTuuJH4CQ__9"]/div/div/div[1]/div[4]"}

В остальных случаях история почти такая же, драйвер не находит елемент и не может по нему кликнуть. Ниже прикладываю скрин тега по которому мне нужно кликнуть
Код элементов на странице поиска Спасибо за помощь!


Ответы (1 шт):

Автор решения: Steenkle

Указанный Вами XPATH не постоянный, и меняется при каждой перезагрузке страницы, попробуйте убедитесь сами, и поэтому он отваливается по "no such element: Unable to locate element". Вам нужно прописать стабильный XPATH, и не указывать в них названия по типу "qmCCY_adG4Sj3QP025p4__16", т.к. они сделаны специально от таких трудяг как мы...

Потом Вы указали "find_element", обратите внимание если Вы хотите перебрать элементЫ, то используйте "find_elementS"

Также пытайтесь зацепиться за слово, которое 100% ожидаете, например на текущей странице

//*[.='Доброго времени суток!']

Если напишите каким был запрос в поиске google, напишу XPATH для Вашей задачи ;)

→ Ссылка