Selenium WebElement Interface

Profile picture for user devraj

WebElement is an Interface which extends SearchContext and TakesScreenshot Interface

public interface WebElement extends SearchContext, TakesScreenshot

In below flowchart interface is represented as Parallelogram, class is represented with rectangle. Yellow arrow we are using for implements and black directional connecter for extends.

Selenium WebElement Interface

You can see WebElement is extending 2 interface, SearchContext and TakesScreenshot. If you recall from previous tutorial WebDriver was also extending SearchContext Interface but here we have one additional interface TakesScreenshot.

There is a class called RemoteWebElement which implements interface WebElement.

WebElement represents an HTML element. Generally, all interesting operations to do with interacting with a page will be performed through this interface. All the frequently used methods like clear(), click(), findElement, findElements(), sendKeys, getText() and many others are associated with this interface. You can view the complete list of methods here.

WebElement Method List

clear()getAriaRole()getLocation()isDisplayed()
click()getAttribute​()getRect()isEnabled()
findElement​(By by)getCssValue​()getSize()isSelected()
findElements​(By by)getDomAttribute​()getTagName()sendKeys​()
getAccessibleName()getDomProperty​()getText()submit()

All method calls will do a freshness check to ensure that the element reference is still valid. This essentially determines whether or not the element is still attached to the DOM. If an element is not attached to the DOM, then a StaleElementReferenceException is thrown, and all future calls to this instance will fail.

Below is the example use case:

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

You must have used this while automating using Selenium, You can see we are using WebElement interface here and its method findElement. We will discuss in more detail about this statement in upcoming lecture.