Como esperar até que um elemento esteja presente no Selenium?

Estou tentando fazer o Selenium esperar por um elemento que é adicionado dinamicamente ao DOM após o carregamento da página. Tentei isso:

fluentWait.until(ExpectedConditions.presenceOfElement(By.id("elementId"));

Caso isso ajude, aqui estáfluentWait:

FluentWait fluentWait = new FluentWait<>(webDriver) {
    .withTimeout(30, TimeUnit.SECONDS)
    .pollingEvery(200, TimeUnit.MILLISECONDS);
}

Mas lança umNoSuchElementException - parecepresenceOfElement espera que o elemento esteja lá, portanto isso é defeituoso. Deve ser pão com manteiga para o Selenium e não quero reinventar a roda ... alguém poderia sugerir uma alternativa, idealmente sem rolar a minha própriaPredicate?

questionAnswers(5)

yourAnswerToTheQuestion