www.instagram.com의 Python / Selenium에서 쿠키 허용 오류

Nov 16 2020

Firefox를 사용하여 다음 코드를 사용하여 Python Selenium을 사용하여 Instagram에 로그인하려고합니다.

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()

실행할 때마다 새 웹 브라우저 창이 올바르게 열리고 사용자 이름과 암호 항목이 채워지지만 결국 다음 오류 메시지가 나타납니다.

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

위의 코드가 처리하지 않는 쿠키 수락 팝업이 있다는 사실 때문이라고 생각합니다. 사용자 이름 및 비밀번호 필드가 자동으로 채워진 스크린 샷은 아래에서 볼 수 있습니다. 누구든지 이러한 쿠키를 자동으로 수락하는 방법을 알고 있습니까?

추신 : 나는 Python / Selenium-Cant click 'Accept cookies'button on www.instagram.com 에서 답을 시도했지만 운이 없습니다.

감사!

Marioanzas

답변

1 U_double_G Nov 29 2020 at 20:43

나도 이것에 대해 작업하고 있었고 약간의 어려움을 겪었습니다. 이 명령은 쿠키 팝업에서 "수락"버튼을 찾습니다.

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

로그인 후 2 개의 팝업이 더 표시됩니다. 1 개는 로그인 정보를 저장하고 1 개는 브라우저에서 알림을 허용합니다. "#not now"뒤의 줄도 같은 방식으로 처리합니다.

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()