Как получить элемент по функции onclick(). python selenium

<span onclick="funcjs['start_youtube'](70581, '7afde6cb0ce7df9014b2e73e293a524a', 'likes-start', 'likes');" title="https://www.youtube.com/watch?v=mBfhPKGzF0w" style="cursor:pointer;color:#006699;">Лайкосик Под Видосик</span>

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


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

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

Можно css-селектором span[onclick] через метод find_elements_by_css_selector найти такие элементы. Если нужно еще и содержимое учитывать, то span[onclick^=funcjs]:

for el in driver.find_elements_by_css_selector('span[onclick^=funcjs]'):
    print(el)
  • ℹ️ ^= ищет по началу значения, т.е. onclick^=funcjs - поиск тегов, у которых есть атрибут onclick, чье значение начинается с funcjs
  • ℹ️ *= ищет по нахождению значения в атрибуте, т.е. style*="color:#006699" - поиск тегов с атрибутом style, у которого в значении есть строка color:#006699

Если нужно ориентироваться на стиль, то ищем по атрибуту style, покажу сразу пример с двумя условиями:

span[onclick^=funcjs][style*="color:#006699"]
→ Ссылка