2012-02-13 20 views
2

PhantomJSは、file:/// [htmlファイルで指定されたsrc]のパスでロードしようとするため、スクリプトをロードしようとしていません。 htmlファイルでは、スクリプトへのパスは相対パスであり、絶対パスにしたくない(この例ではhttp://thomasardal.com/tag/phantomjs/に従っていた)。たとえば、htmlページでは、私は<script type="text/javascript" src="jquery-1.7.0.js"></script>を持っていて、PhantomJSはfile:///jquery-1.7.0.jsからロードしようとしていますが存在しません。 PhantomJSのスクリプトを正しいパスからロードさせるには?PhantomJSは、テストでhtmlページからスクリプトを正しくロードしていません

答えて

0

同じ問題があり、phantomjsのバグのようです。

は、問題を回避する一つの方法が見つかりました:あなたのpage.open関数内

をあなたはpage.injectJs(FILENAME)を呼び出すことができます - とFILENAMEは、実行パスまたはページからの相対パスで動作するように思われます。 libraryPath(最初のjs argがどこにあるのかがデフォルトです)

+0

別々のモジュールテストのために別々のhtmlファイルを用意し、これらのページをできるだけジェネリックとしてロードするjsを保ちたいと思います。私は同様の方法を見つけた:onResourceRequestedをキャッチし、パラメータは要求のURLを保持し、次に私はinjectJs関数を呼び出して、libraryPath + request.urlとしてパスを提供しています。しかし、まだハッキーに見える( –

+0

相対URLを使用してファイルからhtmlを読み込むときにresourceRequestedを試しましたが、これは決して呼ばれませんでした:-(私はブラウザを必要としないジャスミンに切り替えましたjsはドム操作に依存するものではないので、私にはうってつけでした。注射器を使用しただけで、うまく機能し、チームシップに簡単にプラグインできました。 – Daniel

+0

これらの問題のためにphantomjsにスレッドがありますフォローする:http://code.google.com/p/phantomjs/issues/detail?id=330&q=relative%20url、http://code.google.com/p/phantomjs/issues/detail?id=171&can = 8 – Daniel

関連する問題