2012-02-23 5 views
3

끌어서 놓기 기능이있는 UI를 테스트하려고합니다. 내가 원하는 모든 요소는 페이지의 다른 요소로 요소를 드래그하는 것입니다. 코드는 다음과 같습니다.루비에서 끌어서 놓기 테스트

it 'should drag and drop' do     
    draggable = @driver.find('//*[@id="2"]').first 
    droppable = @driver.find('//*[@id="dropmembers4"]').first 
    draggable.drag_to(droppable) 
    @driver.find('//div[contains(., "Dropped!")]').should_not be_nil  
end 

현재 오류가 점점 메신저 :

Failure/error: draggable = @driver.find('//*[@id="2"]').first 
No method error: undefined method 'find' for nil:NilClass 

어떤 도움이 좋을 것. 초기화가 작동하지 않는 것을 의미

감사

+0

you obvi ously'@ driver' 변수를 초기화하지 못했습니다. 정의하는 방법을 게시 할 수 있습니까? – farnoy

+0

당신이 꽤 새로운 것을 짐작 했으므로. 이것이 어떻게 정의하려고하는지, @driver = Selenium :: WebDriver.for : firefox. 하지만 메신저 오류가 초기화되지 않은 셀레늄을 받고. 모든 조언을 부탁드립니다. 감사합니다 – Ray

답변

1

@driver 변수가 존재하지 않습니다.

$ [sudo] gem install selenium 
$ selenium install 

그리고 그것을 사용하는 코드 :

require 'selenium' 
@driver = Selenium::WebDriver.for(:chrome) 

그리고 당신은 종속성을 정의 들러를 사용하는 경우, 당신은 실행해야 다음은 최소한의 초기화 코드의

$ bundle install 

그리고 다음 코드 :

require 'rubygems' 
require 'bundler/setup' 
require 'selenium' 
@driver = Selenium::WebDriver.for(:chrome) 
+0

이 문제에 관해 게시 해주세요. – farnoy