Manuals / Selenium WebDriver / Ch 2

A · WebDriver CoreBeginner55 min read

2. WebDriver mental model & first script

Selenium WebDriver · 48 pages source format

Driver talks to browser via W3C WebDriver protocol. Sessions, findElement, click, sendKeys. Always quit driver in finally hook.

What you'll learn

  • Driver lifecycle
  • By locators
  • First navigation and assert

Hello WebDriver

Selenium Manager auto-downloads drivers (Selenium 4.6+). Start Chrome, open page, assert title, quit.

# Python
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
try:
    driver.get("https://the-internet.herokuapp.com/")
    assert "Internet" in driver.title
finally:
    driver.quit()

Do this now

Script: open the-internet.herokuapp.com, assert title contains "Internet", quit in finally.

Clear?

Locator strategies

By.ID, By.NAME, By.CSS_SELECTOR, By.XPATH (last resort). Prefer stable IDs and CSS.

Do this now

Navigate to /login. Find username field by ID. Submit form.

Clear?

Clean lifecycle

driver.quit() closes browser and session. driver.close() closes tab only. Use quit always.

Do this now

Wrap driver in try/finally or pytest fixture with yield teardown.

Clear?

Checklist