Предполагая, что classA всегда существует;
if(driver.findElements("//span[@class='classB']").size() > 0)
return By.xpath("//span[@class='classB']");
else
return By.xpath("//span[@class='classA']");
Обновляется в соответствии с новой потребностью.Вот xpath, который вы ищете.
//span[not(descendant::span)]