This may sound so simple but why there is no method to find element by its inner text without using xpath? for instance there is an element:
There is a linkText method:
driver.findElement(By.linkText("Some Text"))
You also have partialLinkText:
driver.findElement(By.partialLinkText("Partial Text"))
For examples, see how-to-locate-element-by-link-text-and-partial-link-text-locator
Edit:
As @Cajova_Houba mentioned that it works only for anchor elements