使用TeaSpoon – Jasmine编写规格时,直接使用PhantomJS访问页面

我正在尝试使用Teaspoon(Jasmine版本)为我的Rails 3.2应用程序编写Javascript规范。 我正在尝试编写一个类似这样的规范

describe("Fun", function() { var page = require('webpage').create() //ERROR it("should be so much fun", function() { page.open('/pageToTest/') expect($('#HereIsTheParty')).not.toBe( undefined ); }); }); 

但是,require(’webpage’)不运行( 错误:模块名称“system”尚未加载上下文 ),即使已经安装了Requirejs gem并且可以从Chrome控制台访问它。

我的问题是,我可以轻松获得要求(’网页’)使用Rails运行还是我应该使用其他东西? 到目前为止,我一直在使用Capybara可能更容易

 describe "Fun", :type => :feature do it "should be so much fun" do visit '/pageToTest/' expect(page).to have_content 'Success' end end 

没有任何问题。 但我更喜欢使用纯Javascript,因为在这种情况下它更方便。 你们有什么感想? 谢谢!

使用Teaspoon规范不会在phantomjs的上下文中运行,它们会在浏览器的上下文中加载,因此无法访问phantomjs。 只有内部的phantomjs驱动程序(repo中的runner.js)有任何phantomjs概念,它会在其中加载带有javascripts的html页面。

听起来你可能会用幻影来哄骗Teaspoon,这并不能说明实际发生的事情。 Teaspoon仅使用phantomjs作为跑步者层,并且与Selenium或Capybara Webdriver(两者也支持)的处理方式没有区别。 所以问题类似于询问如何从您的javascript规范中访问Selenium。