How to locate a span with a specific text in Selenium? (Using Java)
Your all xpath
are looks OK, Just some syntactically incorrect. you are missing //
in your xpath
The correct xpath
are as below :-
By by = By.xpath("//span[.='Settings']")
Or
By by = By.xpath("//span[text()='Settings']")
Or
By by = By.xpath("//div[@class='settings-padding']/span"))
Or you can use cssSelector
as :-
By by = By.cssSelector("div.settings-padding > span"))
Using anyone of the above By locator you can locate element as below :-
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement el = wait.until(presenceOfElementLocated(by));
Hope it helps...:)
For the element below
<span class="test-button__text">
Test Text
</span>
The following solution works for me
driver.find_element_by_xpath("//span[contains(@class, 'test-button__text') and text()='Test Text']")