测试ruby中的拖放

时间:2012-02-23 15:56:15

标签: ruby selenium capybara

我正在尝试测试具有拖放功能的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

任何帮助都会很棒。

由于

1 个答案:

答案 0 :(得分:1)

@driver变量不存在,这意味着初始化不起作用。这是最小的初始化代码:

$ [sudo] gem install selenium
$ selenium install

使用它的代码:

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

如果你使用bundler定义依赖项,你应该运行:

$ bundle install

然后这段代码:

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