Selenium Locators
Element locator strategies in Selenium.
XPath Locators
Absolute XPath
//html/body/div/form/input
Relative XPath
//input[@id=username]
//input[@name=email]
//button[text()=Submit]
Contains
//input[contains(@class, form)]
//div[contains(text(), Welcome)]
Starts with
//input[starts-with(@id, user)]
CSS Selectors
By ID
#myId
By class
.myClass
By attribute
input[name=email]
input[type=submit]
Contains
[class*=form]
Starts with
[id^=user]
Child combinator
div > input
Descendant
div input
Expected Conditions
Element presence
EC.presence_of_element_located((By.ID, "id"))
Element visible
EC.visibility_of_element_located((By.ID, "id"))
Element clickable
EC.element_to_be_clickable((By.ID, "id"))
Text present
EC.text_to_be_present_in_element((By.ID, "id"), "text")
JavaScript Executor
Execute script
driver.execute_script("window.scrollTo(0, 500);")
Click with JS
element = driver.find_element(By.ID, "myId")
driver.execute_script("arguments[0].click();", element)
Get value
value = driver.execute_script("return document.title;")