You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC# Wait for element to be clickablewait=WebDriverWait(driver, 10)
element=wait.until(
EC.element_to_be_clickable((By.ID, "button_id"))
)
element.click()
Safe Browser Cleanup
Try/Finally Pattern
driver=Nonetry:
driver=webdriver.Chrome("./drivers/chromedriver")
driver.get("https://example.com")
# Do stufffinally:
ifdriver:
driver.quit()
fromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC# Navigate to login pagedriver.get("https://example.com/login")
# Fill credentialsemail_field=driver.find_element(By.ID, "email")
email_field.send_keys("user@example.com")
password_field=driver.find_element(By.ID, "password")
password_field.send_keys("password123")
# Submit formlogin_button=driver.find_element(By.ID, "login_button")
login_button.click()
# Wait for redirectWebDriverWait(driver, 10).until(
EC.url_contains("/dashboard")
)
Using Cookies (After Initial Login)
importjson# First time: Login and save cookiesdriver.get("https://example.com")
# ... perform login ...# Save cookiescookies=driver.get_cookies()
withopen("cookies.json", "w") asf:
json.dump(cookies, f)
# Later: Load cookies to skip logindriver=webdriver.Chrome()
driver.get("https://example.com")
withopen("cookies.json", "r") asf:
cookies=json.load(f)
forcookieincookies:
driver.add_cookie(cookie)
Working with Multiple Windows
# Get window handlesoriginal_window=driver.current_window_handle# Open new tabdriver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get("https://example.com")
# Switch back to originaldriver.switch_to.window(original_window)
# Close all handlesforhandleindriver.window_handles:
driver.switch_to.window(handle)
driver.close()
Working with Alerts
fromselenium.webdriver.common.alertimportAlert# Accept alertalert=Alert(driver)
alert.accept()
# Dismiss alertalert.dismiss()
# Get alert texttext=alert.text# Type in alertalert.send_keys("text")
Performance Optimization
Headless Mode
options=Options()
options.add_argument("--headless") # Run without GUIdriver=webdriver.Chrome(options=options)