@ ответ elworthy был в правильном направлении относительно CssSelector , который вы можете использовать, и в соответствии с вашими испытаниями кода должно работать следующее:
List<WebElement> list3 = driver.findElements(By.CssSelector("//body[class^='css-'][class$='widget']"));
Однако, если вы хотите построить xpath стоит упомянуть Selenium поддерживает xpath v1.0 и ends-with()
является частью xpath v2.0 .Таким образом, эквивалент xpath будет:
List<WebElement> list1 = driver.findElements(By.xpath("//body[starts-with(@class, 'css-') and contains(@class, 'widget')]"));