Semantic locators can be used with Selenium WebDriver in a similar way to
ByXPath
or ByCssSelector
. Currently only available for Java 8+.
Add the following to your pom.xml
:
<dependency>
<groupId>com.google.semanticlocators</groupId>
<artifactId>semantic-locators</artifactId>
<version>2.1.0</version>
<scope>test</scope>
</dependency>
Once installed, use Semantic Locators as follows:
import com.google.semanticlocators.BySemanticLocator;
...
WebElement searchButton = driver.findElement(new BySemanticLocator("{button 'Google search'}"));
ArrayList<WebElement> allButtons = driver.findElements(new BySemanticLocator("{button}"));
String generated = BySemanticLocator.closestPreciseLocatorFor(searchButton); // {button 'Google search'}
General Semantic Locator documentation can be found on GitHub.