2013-02-24 5 views
-1

Я использую java try и catch. Если элемент нет мне нужно, чтобы перейти к следующему шагуЕсли элемент отсутствует, перейдите к следующему шагу в селене

Я попытался следующие внутри try блока:

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

Но получил следующее сообщение об ошибке:

org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Element is not currently visible and so may not be interacted with`

+0

так что '' '' '' '' ловить 'это сообщение об ошибке? – Amey

+0

Опубликовать код, который вы пробовали. Тогда только мы можем сказать, где вы допустили ошибку. – Manigandan

+0

Я пробовал, но не работал, мне нужно, если оно присутствует true или false – ssoftware

ответ

0

Вы можете попробуйте что-то вроде:

WebDriverWait wait = new WebDriverWait(driver,20); 

try { 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("id of the element to be located"))); 
    return SUCCESS; 
} catch (NoSuchElementException exception) { 
    return FAILURE; 
} 

Если возврат SUCCESS затем выполните следующую строку, пропустите его.

+0

Вы, вероятно, захотите уловить 'TimeOutException' (не обязательно имя там) :) – sokkyoku

+0

Не так, просто верьте, что если элемент присутствует в указанном лимите или нет, а если нет, то пропустите. Для получения более подробного пояснения вместо возврата УСПЕХ и возврата FAILURE вы можете вернуть true или вернуть false. , если return true, а затем выполнить следующую строку, пропустите его. –

+1

При использовании явного ожидания: «Ожидается до [x] секунд до выброса исключения Timeout» (http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp). Ловить 'NoSuchElementException' вам не поможет – sokkyoku

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