В Selenium я обычно предпочитаю использовать локатор id
, когда он доступен. В этом случае для вашего целевого элемента нет идентификатора. Следующим моим вариантом было бы проверить, могу ли я использовать свойство name
, которое здесь также недоступно. Поэтому я обычно использую xpath
в качестве последнего варианта, не то чтобы это плохо, но медленно. Однако xpath
обычно очень способный, с его помощью вы можете найти почти что угодно. В вашем случае вот локатор, который я бы использовал:
String elementLocator = "//span[@id='rightmandatory']/parent::th";
String text = driver.findElement(By.xpath(elementLocator)).getText();
Если метод getText()
считывает текст из элемента span, вы можете в качестве альтернативы заменить его на .getAttribute("innerHTML")
. Конечно, здесь можно использовать и другие локаторы, но вы запрашиваете xpath. Надеюсь, это поможет.