Найти кнопку лайка в Lunkedin на Selenium

хочу полайкать посты красивых девченок в Linkedin при помощи python3 и Selenium, но не могу определиться с нормальным ключем для кнопки лайка. например пост: https://www.linkedin.com/posts/imarpit_technology-marketing-innovation-ugcPost-6921379896199913472-rAbK CSS селектор для кнопки лайка:

#ember67 > span > div > span

ну и код:

button1 = driver1.find_element_by_css_selector("#ember67 > span > div > span")
button1.click()

И все бы ничего, но число в #ember для каждого поста меняется. Как найти нормальный универсальный селектор (не обязательно по CSS, любой) для кнопки лайка? и в чем суть #ember, просто для понимания?


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

Автор решения: Zhenia Kviatkivskyi

Попробуйте использовать js для получения веб элементов. Кнопку лайк можно получить по классу social-action-bar__button-text

import time
from selenium.webdriver.common.by import By
from selenium import webdriver


# путь к хром драйверу в проекте
driver = webdriver.Chrome(executable_path="C:\\Users\\evgen\\PycharmProjects\\ParsersProject\\chrome\\chromedriver_win32\\chromedriver.exe")
driver.maximize_window()

driver.get("https://www.linkedin.com/uas/login?session_redirect=/sales&fromSignIn=true&trk=navigator")
time.sleep(10)
driver.find_element(By.XPATH, '//*[@id="username"]').send_keys("email") # ваш логин
time.sleep(10)
driver.find_element(By.XPATH, '//*[@id="password"]').send_keys("password") # пароль
time.sleep(10)
button = driver.execute_script("""
              let button = document.querySelector('.btn__primary--large');
              console.log('button: ',button);
              return button;
  """)
 button.click()
 time.sleep(1)

# ваша ссылка
driver.get("https://www.linkedin.com/posts/imarpit_technology-marketing-innovation-ugcPost-6921379896199913472-rAbK")
time.sleep(5)

# поиграйтесь с цифрами, чтобы проскролило до кнопки лайк
driver.execute_script("""
 ('window.scrollBy(0,250)', '');
           """)

like_button = driver.execute_script("""
    let like_button = document.querySelector('.social-action-bar__button-text');
    console.log('like_button: ', like_button);
    return like_button;
                        """)
like_button.click()
→ Ссылка