Python / Selenium - www.instagram.com'da 'Çerezleri kabul et' düğmesine tıklayamıyorum

Oct 08 2020

Python selenium kullanarak instagramda oturum açmaya çalışıyorum. Ancak devam etmek için çerezleri kabul etmeliyim.

Bu benim kodum

class InstaBot:
    def __init__(self, username, pw):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.instagram.com/')
        sleep(2)
 #this is the code that im trying to use, so to click the accept button 
self.driver.find_element_by_xpath("/html/body/div[2]/div/div/div/div[2]/button[1]").click() 
        self.driver.find_element_by_xpath("//input[@name=\"username\"]")\
            .send_keys(username)
        self.driver.find_element_by_xpath("//input[@name=\"password\"]")\
            .send_keys(pw)
        self.driver.find_element_by_xpath("//a[contains(text(), 'Log in')]")\
            .click()
        sleep(4)

Sorun, kabul et düğmesine tıklandığında hiçbir şey yapmamasıdır. Herhangi bir fikir?

Yanıtlar

ArundeepChohan Oct 08 2020 at 22:58

Girişi kabul et ve sonraki iki öğeyi tıklamalıdır. Öğenin tıklanabilir hale gelmesini bekleyin ve ardından tıklayın.

WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Accept']"))).click()
#Your code
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#loginForm > div > div:nth-child(3) > button"))).click()  
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Save Info']"))).click()
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Turn On']"))).click()

İthalat

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
U_double_G Nov 29 2020 at 13:51

bunu kullanmayı dene:

self.driver.find_element_by_xpath("//button[text()='Accept']").click()

Çözümümü burada yayınladım: Python / Selenium ile çerez hatasını kabul etme hatası www.instagram.com