Before: Verbose Selenium Code
Traditional Selenium browser automation scripts can be verbose and difficult to maintain, requiring explicit element locators and waits.
Here’s an example of a Selenium script that logs into GitHub, navigates to a repository, and stars and unstars it:
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
# Start Chrome
with webdriver.Chrome() as driver:
    # Navigate to GitHub login page
    driver.get('https://github.com/login')
    # Login
    username_field = driver.find_element(By.ID, 'login_field')
    password_field = driver.find_element(By.ID, 'password')
    username_field.send_keys('1mh')
    password_field.send_keys('1Secretpw')
    login_button = driver.find_element(By.NAME, 'commit')
    login_button.click()
    # Navigate to repository
    driver.get('https://github.com/mherrmann/helium')
    # Wait for and click Star button
    wait = WebDriverWait(driver, 10)
    star_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), 'Star')]")))
    star_button.click()
    # Wait for and click Unstar button
    unstar_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), 'Unstar')]")))
    unstar_button.click()After: Simplified Helium Code
Helium provides several benefits over traditional Selenium scripts:
- Helium’s APIs simplify code, making it concise and readable by eliminating explicit element locators and waits.
- Helium scripts are more maintainable, as you can focus on logic without worrying about implementation details.
- Helium’s intuitive API enables faster development, allowing you to write browser automation scripts quickly and save time.
With Helium, the same script becomes much simpler and more intuitive:
from helium import *
# Start Chrome and navigate to GitHub login page
start_chrome('github.com/login')
# Enter username and password
write('1mh', into='Username')
write('1Secretpw', into='Password')
# Click the Sign in button
click('Sign in')
# Navigate to the Helium repository
go_to('github.com/mherrmann/helium')
# Star and then unstar the repository
click(Button('Star'))
click(Button('Unstar'))
# Close the browser
kill_browser() 
								 
															 
                                                                                                                                                                                                            

