2016-08-06 3 views
1

HTML код:Элемент не найден ошибка в Selenium WebDriver

<table border="0" width="100%" cellspacing="0" cellpadding="2"> 
    <tr class="messageStackError"> 
    <td class="messageStackError"> 
    <img src="images/icons/error.gif" border="0" alt="Error" title=" Error "/>&nbsp; 
    Error: Invalid administrator login attempt.</td> 
    </tr> 
</table> 

Селен Код:

String message =driver.findElement(By.className("messageStackError")).getText(); 

Я получаю ошибку во время выполнения в Selenium WebDriver

Невозможно найти элемент : .messageStackError (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о стеке) Продолжительность или таймаут команды: 19 миллисекунды Для документации на эту ошибку, пожалуйста, посетите: http://seleniumhq.org/exceptions/no_such_element.html

ответ

1

На самом деле это вопрос времени, когда вы собираетесь найти его не будет присутствовать в это время на DOM, так что вы должны попробовать использовать WebDriverWait для ждать, пока этот элемент не может присутствовать, как показано ниже: -

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement el = wait.until(ExpectedConditions.presenceOfElementLocated(By.className("messageStackError"))); 
el.getText() 

Примечание: - Убедитесь, что прежде, чем найти элемент, который не внутри любого frame или iframe. Если он внутри, вам нужно переключить его frame или iframe перед поиском элемента как driver.switchTo().frame("frame id or name");

+1

Спасибо Saurabh, Code работает для меня. –

Смежные вопросы