2017-03-09 1 views
0

id 속성을 사용하여 일부 webelement가 현재 페이지에 있거나 존재하지 않는지 확인하려고합니다. 그러한 web 요소가 존재하지 않고 허용되지 않는 경우 예외가 발생합니다. Selenium API JavaDoc에서는 'findElement'가 존재하지 않는 요소를 찾지 않고 'findElements (By)'를 대신 사용하고 길이가 0 인 응답을 어설 션하는 것이 좋습니다. 그러나 이것도 예외를 던지고있다, 나는 왜 모른다! 어떤 다른 제안?예외가 발생하지 않고 webelement를 찾는 방법은 무엇입니까?

try{ 
// THE PRESENT CODE TO BE MODIFIED. NOT TO THROW exception.*********** 
//    if(driver1.findElement(By.id(orderResultsCheckbox_0)) != null) 
//     return true; 
//    ***************************** 

     //Instead I wrote as below... 

       if( 
        (driver1.findElements(By.id(orderResultsCheckbox_0) != null)) && (driver1.findElements(By.id(orderResultsCheckbox_0)).length() > 0) 
       ) 
        return true; 
       else 
        return false; 

      } catch (Exception e) { 
       println "Exception Thrown ==========>"; 
       return false; 
      } 
+0

PraNuta 오류의 스크린 샷을 게시 해주세요. – AK1

+0

나쁘다! 예, length() 메서드 호출은 java.util.LIst 클래스에서 사용할 수 없습니다. size()를 사용해야합니다. 이번에는 효과가있었습니다. – PraNuta

+0

답변으로 표시하는 방법? – PraNuta

답변

0

findElements 방법은 webelements의 목록을 반환하면 목록이 크기() 방법을 사용하는 webelements 포함되어 있는지 여부를 확인할 수 있습니다. 그러므로 기존 코드를 다음으로 대체하고 문제가 해결되었는지 알려주십시오.

if(driver1.findElements(By.id(orderResultsCheckbox_0)).size() != 0) 
     return true; 
else 
     return false; 
+0

예. 그것은 나쁘다! 지금 작동 중입니다. Groovy 파일에서이 Java 코드를 사용하고 있기 때문에 코드 작성자가 제대로 작동하지 않습니다. 잘못된 메소드 호출을 강조 표시하고 그 밑에 밑줄을 긋습니다. 나는 이클립스의 Groovy 에디터에서는 거의 사용할 수없는 Java 코드 작성자 기능에 버릇이있다. – PraNuta

+0

좋아요. 내가 당신의 질문에 대답했다면, 당신은 그것을 받아 들인 것으로 표시 할 수 있습니까? 답변을 수락하는 방법에 대한 정보는 http://stackoverflow.com/help/someone-answers를 참조하십시오. 감사. – Mahipal