2009-03-02 2 views
3
내가 작성되는 FEK

자동 완성 드롭 테스트

에 의해 여관에게 텍스트 필드를 채우고 Watir과 테스트를 만들려고 해요

"경도"과의 첫 번째 요소를 클릭 한 다음 드롭 다운이 트리거 될 때까지 기다리고 명부.

"lon"으로 작성하면 "London, England, Storbritannia", 런던, 켄터키, 미국 등 많은 옵션이 표시됩니다. watir을 사용하면 어떻게 될까요? thnx에 미리 있습니다.

이것은 내 코드가 지금까지 보이는 것입니다. odes가 작동하지 않으며 어디에서 무엇을 놓쳤는 지 궁금합니다. from_field = @ site.ie.text_field (비행 :, 여행)

데프 site.navigate_to @ 을 test_scriptflight_autocomplete (: ID, "locOriginName") to_field = @ site.ie.text_field (: 아이디, 'locDestinationName ') from_field.set ('오슬로 ')

# need to fire a key press event after setting the text since the js is handling 
# trigger the autocomplete (requires a 'keydown') 
from_field.fire_event('onkeydown') 

# wait until the autocomplete gets populated with the AJAX call 
@site.ie.wait_until{@site.ie.div(:id, 'onlinesearch').lis.length > 0} 
puts @site.ie.div(:id, 'locOriginName ').lis.length 
puts @site.ie.div(:id, 'locOriginName').li(:index, 5).text 

# find the li you want to select in the autocomplete list and click it 
@site.ie.div(:id, 'from-field').li(:text, 'Oslo, Oslo, Norge').click 

답변

2

저와 직장 동료 (Magnar는) 내가 찾고 있던 답을 찾기 위해 우리에게 도움이 블로그를 발견했다. 블로그에서

class Watir::IE 
    def fire_keydown_on(element_id, key) 
     ie.Document.parentWindow.execScript("key = document.createEventObject(); key.keyCode = #{key}") 
     ie.Document.parentWindow.execScript("document.getElementById('#{element_id}').fireEvent('onkeydown', key)") 
    end 
end 

http://blog.saush.com/2008/05/using-rspec-and-watir-for-functional-testing-in-web-applications/

는 :

우리는 단지 요소 ID에 걸리는 IE 클래스를위한 새로운 방법 'fire_keydown_on', 그리고 키를 추가했다. 이 메서드는 Javascript를 호출하여 이벤트 객체를 만듭니다 (IE에서 작동 함). 키 코드는 캐리지 리턴 키 (Enter 키) 인 '13'으로 설정됩니다. Javascript를 호출하여 요소 id를 사용하여 HTML 요소를 가져오고 'onkeydown'이벤트를 발생시키고 방금 만든 이벤트 객체를 전달합니다.

관련 문제