0

Rails 5 を実行しているアプリケーションがあります。スタイリングに mdc コンポーネントを使用しています。new mdc.mdcTextFeild(.....) を呼び出す JavaScript 関数があります。

これは、ブラウザ環境では問題なく動作します。しかし、ポルターガイスト ドライバーでカピバラを使用してテストしているときに、HTML 内に application-XXXXXX.js が存在することを確認できますが、参照エラー mdc not found! がスローされます。

web-pack を使用して mdc コンポーネントをロードしています。正しくコンパイルされ、スクリプトがロードされています。ただし、ポルターガイスト内のウィンドウ オブジェクトには mdc が定義されていません。

4

1 に答える 1

1

Poltergeist は PhantomJS を「ブラウザ」として使用します。PhantomJS の最新リリース バージョンは、基本的に 6 ~ 7 年前のブラウザーと同等であり、多くの最新の JS/CSS をサポートしていません。このため、最新の JS はトランスパイルし、ポリフィルして ES5 と互換性を持たせる必要があります ( letconstArray.fromArray.ofなど)。そうしないと、多くのページ動作の読み込みを妨げる JS エラーが発生します。

最近の最新のアプリのヘッドレス テストには、Poltergeist の代わりに、Capybara と Selenium およびヘッドレス クロムを使用する方がおそらくはるかに優れているでしょう。

于 2018-06-19T20:49:17.963 に答える