Отписаться от людей на Instagram с селеном в python - PullRequest
0 голосов
/ 25 января 2020

Я работаю над ботом instagram, который включает в себя отписку от людей. Он работает с селеном, войдя в систему, нажав «Подписка», а затем для каждого пользователя следует нажать кнопку «Отписаться». Есть проблема: когда я пытаюсь щелкнуть по нему, возникает исключение:

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button class="sqdOP  L3NKy _4pI4F   _8A5w5    " type="button">...</button> is not clickable at point (594, 155). Other element would receive the click: <span class="">...</span>


(Session info: chrome=79.0.3945.130)

Вот мой код:

    unfollow_buttons = driver.find_elements_by_css_selector('.sqdOP.L3NKy._8A5w5')

for button in unfollow_buttons:
    ui.WebDriverWait(driver, 5).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR,
                                    '.sqdOP.L3NKy._8A5w5')))
    button.click()
    ui.WebDriverWait(driver, 2).until(
        EC.element_to_be_clickable((By.XPATH, '/html/body/div[5]/div/div/div[3]/button[1]')))
    driver.find_element_by_xpath('/html/body/div[5]/div/div/div[3]/button[1]').click() 

Я понимаю, что другой элемент получит щелчок, но я не не понимаю, что это за предмет. Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 27 января 2020

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

    unfollow_buttons = driver.find_elements_by_css_selector('.sqdOP.L3NKy._8A5w5')

for button in unfollow_buttons:
    if button.text == "Following":  
        ui.WebDriverWait(driver, 5).until(
            EC.element_to_be_clickable((By.CSS_SELECTOR,
                                        '.sqdOP.L3NKy._8A5w5')))
        actions = ActionChains(driver)
        actions.move_to_element(button).click().perform()
        ui.WebDriverWait(driver, 2).until(
            EC.element_to_be_clickable((By.XPATH,'/html/body/div[5]/div/div/div[3]/button[1]')))
        driver.find_element_by_xpath('/html/body/div[5]/div/div/div[3]/button[1]').click()  # UNFOLLOW CONFIRMATION
        time.sleep(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...