Facebook Login using Python

We can use the Python package called Selenium to automate web browser interactions. In this article, we will see how to automate Facebook login using Python's Selenium package.

Prerequisites

Before automating Facebook login, we need to set up Selenium and a web driver. Here are the required steps ?

Step 1: Install Selenium

Install the Selenium package in your Python environment ?

pip install selenium

Step 2: Install WebDriver

Download ChromeDriver from the official website or install it using webdriver-manager ?

pip install webdriver-manager

Finding HTML Elements

To automate login, we need to identify the HTML elements for username, password, and login button. You can inspect Facebook's login page to find these elements ?

Email input field: id="email" Password input field: id="pass" Log In Login button

Facebook Login Automation

Here's a complete example that automates Facebook login using Selenium ?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

# Setup Chrome driver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # Navigate to Facebook
    driver.get("https://www.facebook.com")
    
    # Find login elements
    email_field = driver.find_element(By.ID, "email")
    password_field = driver.find_element(By.ID, "pass")
    login_button = driver.find_element(By.NAME, "login")
    
    # Enter credentials
    email_field.send_keys("your_email@example.com")
    password_field.send_keys("your_password")
    
    # Click login button
    login_button.click()
    
    # Wait for page to load
    time.sleep(5)
    
    print("Login attempt completed")
    
except Exception as e:
    print(f"Error occurred: {e}")
    
finally:
    # Close browser
    driver.quit()

Updated Code with Modern Selenium

The original example used deprecated methods. Here's the updated version using current Selenium practices ?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

def facebook_login(email, password):
    # Setup driver
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service)
    
    try:
        # Navigate to Facebook
        driver.get("https://www.facebook.com")
        
        # Wait for elements to be present
        wait = WebDriverWait(driver, 10)
        
        # Find and fill email field
        email_element = wait.until(EC.presence_of_element_located((By.ID, "email")))
        email_element.send_keys(email)
        
        # Find and fill password field
        password_element = driver.find_element(By.ID, "pass")
        password_element.send_keys(password)
        
        # Find and click login button
        login_button = driver.find_element(By.NAME, "login")
        login_button.click()
        
        # Wait for redirect (successful login or error page)
        wait.until(EC.url_changes("https://www.facebook.com"))
        
        return driver
        
    except Exception as e:
        print(f"Login failed: {e}")
        driver.quit()
        return None

# Usage
driver = facebook_login("your_email@example.com", "your_password")
if driver:
    print("Successfully logged in!")
    # Continue with your automation tasks
    driver.quit()

Important Considerations

Aspect Recommendation Reason
Credentials Use environment variables Security best practice
Rate Limiting Add delays between actions Avoid being blocked
Error Handling Use try-catch blocks Handle failures gracefully
WebDriver Use WebDriverWait Handle dynamic content

Conclusion

Selenium enables automated Facebook login through browser automation. Always use modern Selenium methods with proper error handling and respect platform terms of service. Consider using environment variables for credentials and implement appropriate delays to avoid detection.

Updated on: 2026-03-15T17:13:15+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements