3

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 );
    });
});

ただし、 Requirejs gem がインストールされており、Chrome コンソールからアクセスできる場合でも、require('webpage') は実行されません (エラー: モジュール名 "system" はコンテキスト用にまだロードされていません)。

私の質問は、 require('webpage')を Rails を使用して簡単に実行できるか、それとも別のものを使用する必要があるかということです。これまで使ってきたので、カピバラを使う方が簡単かもしれません

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

問題なく。ただし、この場合はより便利なので、純粋なJavascriptを使用することをお勧めします。皆さんはどう思いますか?ありがとう!

4

1 に答える 1

0

Teaspoon では、仕様は phantomjs のコンテキスト内で実行されず、ブラウザーのコンテキスト内で読み込まれるため、phantomjs にアクセスできません。内部の phantomjs ドライバー (レポの runner.js) のみが、javascript を含む html ページをロードする phantomjs の概念を持っています。

Teaspoon を phantomjs で畳み込んでいるように聞こえますが、これは実際に何が起こっているかを正確に示したものではありません。Teaspoon は phantomjs のみをランナー レイヤーとして使用し、Selenium または Capybara Webdriver (どちらもサポートされています) と同じように扱います。したがって、質問は、JavaScript 仕様内から Selenium にアクセスする方法を尋ねるのと似ています。

于 2015-03-11T16:40:01.287 に答える