2011-08-19 1 views
1

양식 필드가 잘못된 값으로 자동 채워지는 시나리오를 실행 중입니다. 일부 이미지가 흐릿하게 표시 될 때 잘못 표시된 각 필드 아래에 경고를 표시하는 JavaScript가 트리거됩니다. 브라우저에 포커스가있을 때 테스트가 통과합니다. 그것은 내가 통과하는 "예상 경고"가있는 xpath를 찾습니다. 하지만 다른 응용 프로그램을 최소화하거나 클릭하면 xpath를 찾지 못합니다.Capybara 오이 테스트 브라우저가 최소화되었을 때 xpath를 찾지 못했습니다.

나는 파이어 폭스 3.6을 실행하는거야 (곧 업데이트 예정) 그리고 내가 XPath를 찾기 위해하고 있어요 방법은

사람이 어떻게 어떤 생각을 가지고 있습니까 "page.should의 have_xpath (XPath는)"을 사용하는 것입니다 무엇이 이것을 해결할 수 있을까요? 브라우저를 최소화하여 실행하는 것이 중요합니다.

편집 및 대체 솔루션 :
나는 드라이버 자체에 내재 최소화 브라우저에서 특정 XPath를 찾아 다음과 같은 흐림 등의 이벤트에서 발생하는 타이밍 문제를 생각한다. 따라서 Linux에서 xvfb를 사용하여 가상 프레임 버퍼에서 테스트를 실행하기로 결정했으며 실제로 작동하는 것 같습니다. 나는 변경 사항이 적용될 때마다 Hudson/Jenkins에 의해 트리거되도록이 계획을 적용 할 계획입니다.

+0

웹 자동화가 실행 중일 때 브라우저와 상호 작용하는 이유는 무엇입니까? 이러한 테스트는 스스로 자동으로 수행되어야하므로 실수로 상호 작용을 변경할 수 없습니다. – Oded

+0

나는 그것과 상호 작용하지 않을거야. 브라우저가 실제로 혼란을 겪을 때 "흐려지면"읽지 않을 수도 있습니다. 문제는 내 dev 컴퓨터에서 시나리오를 개발할 때, 나는 계속 개발할 수 있기를 원한다. 브라우저가 선택된 프로그램이 아니라는 사실은 페이지에서 xpath를 찾으려는 카피 바라와 간섭해서는 안됩니다. 그것은 page.should have_xpath (xpath)를 제외한 다른 모든 것들과 함께 작동합니다. – chiurox

답변

1

타이밍 문제 일 수 있습니까? 아마도 브라우저가 가장 앞면이없고 최대화되어 있지 않다면, 카피 바라 (Capybara)가 검사 할 때 콘텐츠가 존재할 정도로 빨리 렌더링이 진행되는 것은 아닙니다.

기타 : 어떻게 블러 이벤트를 발생 시키나요?

+0

타이밍 문제 일 가능성이 거의 확실합니다. blur 이벤트는 다음과 같이 수행됩니다. def blur (field) page.execute_script ("$ { '## {field}') blur();") end 다른 방법으로해야합니까? – chiurox

+1

아마도 fire_event를 사용 하시겠습니까? http://www.eviltester.com/index.php/2009/01/24/how-i-learned-to-love-seleniums-fireevent/ –

+0

execute_script()와 같은 일을했지만 동일한 문제가 발생했습니다. 브라우저가 최소화되었을 때. :( – chiurox