2013-02-24 2 views
-1

저는 trycatch을 사용하고 있습니다.요소가없는 경우 셀레늄의 다음 단계로 건너 뛰십시오.

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

나는 노력했지만 일하지 않았다, 만약 내가 현재 또는 사실과 같은 필요가 – ssoftware

답변

0

당신은 할 수있는 요소가 존재하지 않는다면 은 내가이 (가) try 블록 내부에 다음과 같은 시도 다음 단계

으로 건너 뛸 필요 아래와 같이 시도하십시오 :

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; 
} 

반환이인 경우다음 줄을 건너 뛰고 건너 뜁니다.

+0

아마 당신은 'TimeOutException' (그곳에 이름이 확실하지 않음)을 잡을 수 있습니다 :) – sokkyoku

+0

정확히 말하면, 요소가 지정된 제한에 있거나 없으면 생략하고 건너 뛰면됩니다. 반환 값 SUCCESS 및 반환 값 FAILURE 대신 명확하게하려면 true를 반환하거나 false를 반환 할 수 있습니다. return이 true이면 다음 행을 실행하고 그렇지 않으면 건너 뜁니다. –

+1

명시 적 대기를 사용할 때 : "TimeoutException을 throw하기 전에 최대 [x] 초 동안 기다립니다."(http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp). 'NoSuchElementException' 잡기가 도움이되지 않습니다. – sokkyoku

관련 문제