2013-10-16 5 views
1

현재 gwt powered gui의 셀렌 테스트에 좋은 문제가 있습니다.GWT 셀레늄 테스트가 가끔 실패합니다

응용 프로그램에는 두 섹션 (필터 및 눈금)이 있습니다. 우리의 테스트는 때때로 NoSuchElementException으로 실패합니다.

크레이지는 다음과 같습니다. 중단 점으로 이클립스에서 테스트를 중지하고 파이어 폭스 파이어 버그 또는 다른 애드온으로 페이지를 검사합니다. 그리고 알았어. 나는 원하는 요소를 찾을 수 없다. 하지만 (응용 프로그램이나 Eclipse에서 다른 변경 사항을 다시 시작하지 않고), 내가 다시 시도하고 요소를 검색하면 이클립스에서 이력서가 녹색으로 바뀝니다. 저를 위해 그것은 firefox에있는 동기화 문제 같이 보인다. A는 명시 적 명령을

new WebDriverWait(getDriver(), 10).until(condition); 

기다려야

타임 아웃 (10 초 동안) 일어나는 유일한 효과를 갖는다.

내가 말했듯이 - 때로는 테스트가 녹색이고 때로는 실패합니다.

누구에게 아이디어가 있습니까?

답변

0

서버에서 데이터 비동기 (RPC)를로드하는 것처럼 들릴까요? Selenium이 데이터를 찾고있을 때 데이터와 UI에서 데이터를 표시하는 요소가 아직 없습니다. 쿼리가 데이터베이스에서 차지하는 기간 또는 네트워크에서의 대기 시간에 따라 대기 시간은 테스트 실행에서 테스트 실행까지 다를 수 있습니다.

+0

안녕하세요 애드리안를 알려 주시기 바랍니다. 당신 말이 맞아요! 비동기 rpc 실행 중에 DOM의 요소가 대체됩니다. 그래서 우리는 명시 적으로 wait 문을 사용합니다 (내 질문 참조). 이 문장의 조건은 "xy '요소가 DOM에있을 때 true를 반환하는 것과 같습니다. 그 동안 빠르고 빠름 해결 방법을 발견했습니다 ... – ChangeRequest

0

이 문제의 해결 방법이 있으며이를 공유합니다. 다음 코드는 명시 적 wait 명령이 실행되기 전에 실행됩니다.

브라우저 창 크기를 조정하면 DOM이 "동기화 됨"상태라는 것을 알았습니다. 그래서 너비를 줄이고 이전 값으로 다시 설정합니다.

사람이 더 나은 제안이있는 경우 - 우리가 ;-)

관련 문제