Locators

In order for Selenium to control and manipulate each HTML element(e.g. <a>, <input>, <div>, etc) on the website, you have to provide it with a reference to each element. That reference is used by Selenium to identify the element and apply the actions on that element. The term used in Selenium to denote the reference of an element is called locator.

There are different types of locators. For the complete list, see the documentation of Selenium. The following are the most commonly used types of locators:

id=id
Refer to the element with the specified @id attribute.
HTML:
<div id="unique_logo_id"></div>
----------------------------------------
Locator:
id=unique_logo_id
name=name
Refer to the element with the specified @name attribute.
HTML:
<input name="first_name" />
----------------------------------------
Locator:
name=first_name
xpath=xpathExpression
Refer to the element with the specified Xpath expression.
HTML:
<table>
    <tbody>
        <tr><td>cell1</td></tr>
        <tr><td id="cell_id_2">cell2</td></tr>
    </tbody>
</table>
----------------------------------------
Locator:
xpath=//table/tbody/tr/td[text()='cell2']
xpath=//*[@id='cell_id_2']
xpath=//td[text()='cell2']
xpath=//td[contains(text(), '2')]
link=textPattern
Refer to a link with the specified text pattern.
HTML:
<a href="page2.html">Next</a>
----------------------------------------
Locator:
link=Next
link=regexp:[nN][eE][xX][tT]
link=regexpi:NEXT

By default, if the type of locator is not explicitly specified, Selenium will assume that it is an @id. If no match is found, then it will assume that it is a @name.

Therefore, given that you provide the locator of the desired element, Selenium will be able to click or type on that element, retrieve text from that element, etc. Most of the functions provided by Selenium use locator. Hence, it is important that you master the locator in order to be able to use Selenium efficiently.