2017-02-13 2 views
0

아래의 코드를 사용하여 특정 요소를 찾고 다음을 사용하여 추출합니다. XPath. 그러나 일부 페이지에서는 사용할 수 없습니다.셀레늄의 조건부 연산

어떻게해야합니까?

FYI 아래 코드는 실패합니다.

String founded=driver.findElement(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")).getText(); 
if(founded.isEmpty()) 
{ 
    founded="NA"; 
    System.out.println(founded); 
} 
+0

받는 사람에게 오류 및/또는 스택 트레이스를 추가하십시오. 정확한 문제를 말하지 않으면 추측 할 수 있습니다. 그리고 내 생각 엔 당신의 문제는 다음과 같습니다. findElement 메소드는 요소를 찾지 못하면 NoSuchElementException을 던집니다 (설명서를 읽는 것으로 본 것처럼). 당신이 예외를 잡아서 처리해야하는 요소가 발견되지 않으면 케이스를 처리하고 싶습니다. –

답변

0

당신은 WebElement 또는 빈 목록 중 하나 목록을 반환하는 대신 WebElement.findElements()를 사용하여 시도해야합니다. 다음과 같이 빈 목록을 확인하십시오. -

String founded = ""; 

List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")); 

if(list.isEmpty() || list.get(0).getText() == null || list.get(0).getText().isEmpty()) 
{ 
    founded = "NA"; 
}else { 
    founded = list.get(0).getText(); 
}  
System.out.println(founded);