3

저는 자바 스크립트 드라이버로 capybara-webkit을 사용하여 Cucumber와 Capybara를 사용하여 RoR 앱을 테스트하고 있습니다. 나는 클라이언트 쪽에서 jQuery를 사용하고있다.맞춤식 업 로더가 작동하는지 테스트하려면 어떻게해야합니까?

브라우저에서 생성 한 기본 파일 선택기를 사용하고 싶지 않습니다. 이것은 (내 문제를 강조하기 위해 편집) 내 마크 업입니다

$(document).ready(function() {                                            
    $('#upload_button').click(function() {                                         
    $('#upload_file').click();                                            
    });                                                  

    $('#upload_file').on('change', function() {                                        
    $(this).parents('form:first').submit();                                         
    });                                                  
}); 

: 이것은 내 자바 스크립트 코드 내 파일 업로드가 작동하는지,

<form action="/guests/upload_list" enctype="multipart/form-data" method="post"> 
    <input class="invisible" id="upload_file" name="upload_file" type="file"> 
    <button id="upload_button" name="button" type="button">Upload guest list...</button> 
</form> 

내가 테스트 할 수 있습니다, 카피 바라를 통해, 그러나 나는 또한 필요 내 '가짜'버튼이 작동하는지 테스트합니다. 한 가지 생각은 카피 바라를 사용하여 가짜 버튼을 클릭하고 파일 대화 상자가 표시되는지 확인하는 것이지만 후자를 수행하는 방법을 알지 못합니다.

이것을 테스트하기위한 좋은 전략은 무엇입니까? 나는 경찰을 가능한 해결책으로 생각했으나 실제로 작동하는지 테스트하는 방법은 아직 명확하지 않다. 또한 Jasmine을 자바 스크립트 테스트 프레임 워크로 보았지만 현재 사용중인 시스템 (예 : 오이, 카피 바라 등)을 사용하고 싶습니다.

+0

''브라우저에서 생성 된 기본 파일 선택 도구를 사용하고 싶지 않습니다. ''어떤 파일 선택 도구 그럼 당신이 사용하고 있습니까? jQuery UI 컴포넌트인가요? 확인할 사항에 대한 실례를 보여줄 수 있습니까? ''가짜 버튼 ''이란 무엇을 의미합니까? 버튼이 실제로 양식을 제출한다는 것입니까? 질문이 조금 애매한 것 같습니다. – toniedzwiedz

+0

버튼을 만들고 있습니다 (버튼 태그 참조). 그런 다음 CSS를 사용하여 파일 입력을 사라지게 할 것입니다. 내가하고있는 일의 예를 보려면이 바이올린을보십시오. http://jsfiddle.net/xg4KT/ – Avery

+1

예를 들어, 열리는 대화 상자는 운영 체제에서 제공됩니다. 대화 상자를 테스트 할 때 현재 범위를 넘어 테스트가 필요함을 의미합니다 네가있는 곳.http://stackoverflow.com/questions/9431978/one-solution-for-file-upload-using-selenium-webdriver-with-java에서 OP는 'Robot'을 사용하여 OS 수준의 키보드 명령을 대화 상자에 보내고, 예를 들면. – Kache

답변

0

당신은

  • 그들에게
  • 를 비교하여 다른 화면을 확인하여 버튼을 클릭

    1. Make a screenshot.
    2. 의 몇 가지 변화를 시도 할 수 있지만 확실하지 않다 셀레늄 webdriver 스크린 샷 경우 OS 레벨이며 피커 또는 브라우저 레벨을 표시하고 페이지 만 표시합니다.

      그렇지 않으면 스크린 샷으로 스크립트 할 수있는 sikuli과 같은 것이 옵션이 될 수 있습니다. 내가 sikuli라는 보석을 보았다하지만 Sikuli는 파이썬을 사용하지만 난에 어떤 상태에 모르는


      당신은 브라우저 < 테스트 하시겠습니까 -.이 같은> OS 상호 작용을. 또는 파일 유형의 숨겨진 input 요소에서 click 이벤트를 발생 시키면 filepicker가 생성되는지 확인하기 만하면됩니까? 어떤 HTML 사양으로도 정의되지 않습니다. 일부 브라우저 OS 조합은 선택 도구를 실행하지 않을 수도 있습니다.

      브라우저 OS 상호 작용 테스트가 앱의 범위를 벗어나서 "시스템 테스트"(String 테스트와 비슷 함)에 해당한다고 판단되면 button.click이 클릭을 테스트합니다. Jasmine으로 입력하면 충분합니다.

  • +0

    [this near duplicate]와 유사합니다 (http://stackoverflow.com/questions/20382367/testing-html5-file-upload-with-capybara-selenium-webdriver-ruby) 제안 된 sikuli와 비슷한 솔루션을 선택합니다. 하나; AutoIT –

    0

    대화 상자가 열리면 새 div 또는 표시되는 항목이 있습니까? 당신은 단지 그 CSS가 페이지를 통해 있다고 주장 할 수 있습니다. have have_css ('div.fake-popup')

    관련 문제