Chấp nhận lỗi cookie với Python / Selenium trên www.instagram.com
Tôi đang cố gắng sử dụng Firefox để đăng nhập Instagram bằng cách sử dụng Python Selenium bằng đoạn mã sau:
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()
Mỗi khi tôi chạy nó, nó sẽ mở ra một cửa sổ trình duyệt web mới, điền vào các mục nhập tên người dùng và mật khẩu, nhưng cuối cùng, tôi nhận được thông báo lỗi sau:
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
Tôi nghĩ rằng đó là do thực tế là có một cửa sổ bật lên chấp nhận cookie mà mã của tôi ở trên không xử lý được. Bạn có thể xem ảnh chụp màn hình với các trường tên người dùng và mật khẩu được điền tự động bên dưới. Có ai biết cách chấp nhận những cookie này tự động không?
Tái bút Tôi đã thử câu trả lời bằng Python / Selenium - Không thể nhấp vào nút 'Chấp nhận cookie' trên www.instagram.com , nhưng không may mắn.
Cảm ơn!
Marioanzas
Trả lời
Tôi cũng đang làm việc này và có một chút đấu tranh. Lệnh này tìm thấy nút "Chấp nhận" trên cookie bật lên:
find_element_by_xpath("//button[text()='Accept']")
Sau khi đăng nhập, nó sẽ nhắc thêm 2 cửa sổ bật lên: 1 để lưu thông tin đăng nhập, 1 để cho phép thông báo trên trình duyệt. Các dòng sau "#not now" xử lý chúng theo cách tương tự
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()