Я хочу написать тест, чтобы проверить, нет ли веб-элемента с указанным текстом на странице. Это код для метода, выполняющего работу:findelement не бросает NoSuchElementException
public boolean checkOfAanvraagIsOpgevoerd (String titel)
{
String quote = "\"";
String titelMetQuotes = quote + titel +quote;
titelMetQuotes = "dierdieboeboe";
boolean isOpgevoerd=false;
try {
driver.findElement(By.xpath(".//*[@id='listRequests']//h4/a[contains(text(),"+titelMetQuotes+")]"));
isOpgevoerd=true;
} catch (NoSuchElementException NE) {
NE.printStackTrace();
}
return isOpgevoerd;
}
Хотя я абсолютно уверен, что нет тега на странице, содержащий текст «dierdieboeboe» до сих пор блок улова пропускается. Когда я заменяю, например, h4 в h5 в выражении xpath, исключение NoSuchElementException выбрано так, как ожидалось. Кажется, что содержащая часть в выражении игнорируется.
Это может быть, что тег скрыт. Получается ли результат, когда XPath выполняется вручную в консоли вашего браузера? '$ x (" .//*[@ id = 'listRequests'] // h4/a [contains (text(), 'dierdieboeboe')] ")' –
При вводе этого выражения в Firepath результат не соответствует узлы " – Frank
Если вы не получите какой-либо результат вручную, то это вопрос времени. Элемент, найденный селеном, вероятно, удаляется после асинхронного обновления/действия. Попробуйте добавить задержку, чтобы проверить, так ли это. Если да, добавьте официанта, чтобы синхронизировать ваш тест. –