javascript
  • ruby
  • cucumber
  • gherkin
  • 2015-01-21 4 views 1 likes 
    1

    오이 오이를 사용합니다. 하지만 불행히도 자바 스크립트로 서버에서 데이터를 가져와야합니다.자바 변수를 오이 변수에 저장

    질문 :다음 단계에서 결과를 재사용하려면 JavaScript 요청 결과를 오이 변수에 저장하는 방법은 무엇입니까?

    코드 :

    Then(/^I load all stuff$/) do 
        script = "(function run(){ 
        var url = 'localhost:8o8o/getStuff'; 
        $.ajax({url: url}).then(function(res) { 
         //PROBLEM: how to save 'res' variable to Ruby variable? 
        }); 
        })()".gsub(/[\t\r\n]/, ''); 
        @browser.execute_script(script) 
    end 
    
    +1

    변종으로, 숨겨진 필드에'res'를 설정하고 일반적인 방법으로 값을 가져옵니다. –

    +0

    @YevgeniyAnfilofyev 죄송 합니다만,'res'는'Backbone.Collection'입니다. 나는 그것을 입력란에 넣을 수 없다. –

    +0

    당신은'res'를 문자열화할 수있다. 'JSON.stringify (res) '와 같은 것. –

    답변

    1

    내가 이런 식으로했다 :

    script = "$.ajax({url: '...'}).then(function(res){ 
        $('<input>').attr({ 
         type: 'hidden', 
         id: 'foo', 
         name: 'bar', 
         value: JSON.stringify(res) 
        }).appendTo('form'); 
    });" 
    page.evaluate_script(script) 
    wait_for_ajax 
    res = page.find('#foo', visible: false).value 
    

    그래서 당신이 볼을, 그것은 res의 캐릭터 라인 값으로 요소를 형성하는 숨겨진 입력 요소를 추가합니다. 그런 다음 아약스가 실행되기를 기다립니다. 그런 다음 페이지에서 그 가치를 발견했습니다.

    관련 문제