2013-05-23 1 views
1

테스트를 실행할 때 "클릭 완료 할 수 없음"오류가 발생했지만 간헐적으로 발생합니다.Robotium AssertionFailedError : 클릭을 완료 할 수 없습니다.

clickOnView를 호출하기 전에 뷰가 null이 아닌지 확인합니다.

clickOnView를 호출하기 전에 확인해야 할 사항이 있습니까?

Button btnLike = (Button) vwItem.findViewById(R.id.buttonLike); 
assertTrue(solo.waitForCondition(new Common.WaitUntilViewNotNull(solo, vwItem, R.id.buttonLike), 5000)); 
solo.clickOnView(btnLike); 

public static class WaitUntilViewNotNull implements Condition { 
    int viewId; 
    Solo solo; 
    View parentView; 

    public WaitUntilViewNotNull(Solo solo, View parentView, int viewId) { 
     this.solo = solo; 
     this.viewId = viewId; 
     this.parentView = parentView; 
    } 

    @Override 
    public boolean isSatisfied() { 

     View v = null; 
     if (parentView != null) { 
      v = (View)parentView.findViewById(viewId); 

     } 
     else { 
      v = (View) solo.getView(viewId); 
     } 

     return v != null; 
    } 

} 
+0

실제로 확인하지 않았습니다. 변경 : solo.waitForCondition ... assertTrue (solo.waitForCondition ... – maszter

+0

방금 ​​시도했지만 차이를 만들지 않았습니다. 여전히 같은 오류가 발생했습니다. – dannyroa

+0

다음을 확인하십시오. http://wklej.org/ . 해시/e757bfe69e8/ 클릭하고 결과를 표시하기 전에 – maszter

답변

1

보기가 렌더링되기 전에 btnLike 변수를 할당하는 것이 문제인 것처럼 보입니다. 따라서 null과 같습니다.

알아두면 좋겠지 만 Condition 대신 waitForView을 선호 할 것입니다.

assertTrue(solo.waitForView(R.id.buttonLike, 1, 5000)); 
Button btnLike = (Button) vwItem.findViewById(R.id.buttonLike); 
solo.clickOnView(btnLike);