1

開発者は最近、ページが開かれるたびにテストでJavaScriptを実行できるかどうかを尋ねました。詳細については、バグ44299を参照してください。

javascriptの実行は簡単です。

browser.execute_script('return mw.loader.getModuleNames().filter(function (module) { return mw.loader.getState(module) === "error"; }).length === 0;')
#=> true 

ページを開くためにpage-objectを使用しています。#visit_page上記の例のjavascriptがページが開かれるたびに実行されることを確認する簡単な方法は、#visit_pageメソッドにモンキーパッチを適用することです。

alias_methodチェーン(質問4470108から)はそれを行う簡単な方法のように見えます。

もっと良い方法はありますか?

4

2 に答える 2

2

。という名前のページオブジェクトクラスにメソッドを作成するだけですinitialize_page。このメソッドは、ページが読み込まれた直後に呼び出されます。execute_scriptそのメソッドでは、実行したいjavascriptを渡して(ページ上のメソッド)を呼び出すことができます。

于 2013-02-01T13:00:28.460 に答える
0

あなたは非常に単純なことのために少し多くの仕事をしているように私には思えます。使用しているフレームワークはわかりませんが、アプリケーション全体のJavaScriptファイルはありますか?Railsアプリケーションの場合、test.js.erbを記述します。

<%= %q+browser.execute_script('return mw.loader.getModuleNames().filter(function (module) { return mw.loader.getState(module) === "error"; }).length === 0;')+ if Rails.env.test? %>

//= testアプリケーションマニフェストに追加します

于 2013-01-31T23:12:34.523 に答える