Errore di accettazione dei cookie con Python / Selenium su www.instagram.com

Nov 16 2020

Sto provando, utilizzando Firefox, ad accedere a Instagram utilizzando Python Selenium utilizzando il seguente codice:

from time import sleep
from selenium import webdriver

browser = webdriver.Firefox()
browser.implicitly_wait(5)

browser.get('https://www.instagram.com/')
sleep(2)

username_input = browser.find_element_by_css_selector("input[name='username']")
password_input = browser.find_element_by_css_selector("input[name='password']")

username_input.send_keys("<your username>")
password_input.send_keys("<your password>")

login_button = browser.find_element_by_xpath("//button[@type='submit']")
login_button.click()

sleep(5)

browser.close()

Ogni volta che lo eseguo, apre correttamente una nuova finestra del browser web, inserisce il nome utente e la password ma, alla fine, ricevo il seguente messaggio di errore:

ElementClickInterceptedException: Message: Element <button class="sqdOP  L3NKy   y3zKF     " type="submit"> is not clickable at point (844,327) because another element <div class="piCib"> obscures it

Penso che sia dovuto al fatto che c'è un pop-up di accettazione dei cookie che il mio codice sopra non si occupa. Di seguito è possibile visualizzare uno screenshot con i campi nome utente e password compilati automaticamente. Qualcuno sa come accettare automaticamente questi cookie?

PS Ho provato la risposta in Python / Selenium - Non posso fare clic sul pulsante "Accetta i cookie" su www.instagram.com , ma senza fortuna.

Grazie!

Marioanzas

Risposte

1 U_double_G Nov 29 2020 at 20:43

Stavo lavorando anche su questo e ho avuto un po 'di difficoltà. Questo comando trova il pulsante "Accetta" nel popup dei cookie:

find_element_by_xpath("//button[text()='Accept']")

Dopo il login vengono richiesti altri 2 pop up: 1 per salvare le informazioni di login, 1 per consentire le notifiche sul browser. Le righe dopo "#not now" si prendono cura di loro allo stesso modo

from time import sleep
from selenium import webdriver

browser = webdriver.Firefox()
browser.implicitly_wait(5)

browser.get('https://www.instagram.com/')

sleep(2)
# cookie 
cookie_button = browser.find_element_by_xpath("//button[text()='Accept']")
cookie_button.click()

username_input = browser.find_element_by_css_selector("input[name='username']")
password_input = browser.find_element_by_css_selector("input[name='password']")

username_input.send_keys("<your username>")
password_input.send_keys("<your password>")

login_button = browser.find_element_by_xpath("//button[@type='submit']")
login_button.click()

sleep(3)
# not now
save_login_info_button= browser.find_element_by_xpath("//button[text()='Not Now']")
save_login_info_button.click()
sleep(3)
notification_button= browser.find_element_by_xpath("//button[text()='Not Now']")
notification_button.click()

browser.close()