0

我正在通过 rspec 玩 selenium,但不满意,我看到了对 poltergeist 的建议。当我尝试用我的测试运行它时,似乎 poltergeist 驱动程序没有出现在它应该出现的位置。我有点困惑机架测试在哪里适合 poltergeist,但我尝试了很多不同的东西。然后我找到了这个简单的例子并试图让它工作但仍然没有运气。我在 Windows 上使用 jruby。

我正在使用此处找到的示例: https ://gist.github.com/pzol/1607842 我将所有代码移到一个文件中,这种情况下没有规范助手

我确实安装了 phantomjs 并为 phantomjs 运行了一个小小的 hello world 示例,它在我的路径中

require 'rspec'
require 'capybara/rspec'
require 'capybara/poltergeist'

Capybara.javascript_driver = :poltergeist

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, debug: true)
end

describe 'poltergeist', :type => :request, :js => true do

  it 'should find github poltergeist in google' do
    visit 'http://www.google.com/'
    fill_in "q", :with => "github poltergeist"
    click_button "btnK"
    page.should have_content 'jonleighton/poltergeist'
  end
end

jruby -S rspec poltergeist-test2.rb F

失败:

1) poltergeist 应该在 google Failure/Error 中找到 github poltergeist:访问 ' http://www.google.com/ ' NoMethodError: undefined method visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x4324 4fd9> # ./poltergeist-test2.rb:18:in(root)'

在 0.01 秒内完成 1 个示例,1 个失败

失败的例子:

rspec ./poltergeist-test2.rb:17 # poltergeist 应该在 google 中找到 github poltergeist

4

1 回答 1

1

嗯,嗯,我在看 capybara 文档,我改变了这一行:

describe 'poltergeist', :type => :request, :js => true do

到这一行,我将 :type 设置为 :feature 现在似乎没问题..

describe 'poltergeist', :type => :feature, :js => true do

前几天在我的谷歌搜索中似乎看到了一些东西,但不确定,目前我不清楚有什么区别,但我正在取得进展

于 2013-10-30T15:07:41.997 回答