問題タブ [slimerjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
78 参照

javascript - Browserify を使用して CasperJS+SlimerJS のコードをバンドルしますか?

TLDR; 私の質問は次のとおりです。 browserifyrequireを独自の実装でオーバーライドせず、代わりにbrowserifyRequire独自の内部要件すべてに別のメソッド名 (例: ) を使用する方法はありますか? なぜこれを行う必要があるのか​​ を知るために、読んでください...

シナリオ

デフォルトのPhantomJSとは対照的に、CasperJSを使用してSlimerJSで実行する自動テストを作成しようとしています(私が知っている限りでは、PhantomJSでも同じ次の問題に遭遇します)。

これらをCoffeeScriptで記述する方法を知りたいです。結局のところ、CasperJS や SlimerJS は、最近の CoffeeScript ではうまく機能しません。ドキュメントの推奨事項は、casper を実行する前に JS にコンパイルすることです。わかりました...あまり便利ではありませんが、私はそれを処理できます。実際、requireこれらのツールでパスを解決する方法は、Node.js の場合ほど単純ではないこともわかっています。そのため、実行前にバンドルすることも役立つはずです。

しかし今、バンドルされたコードを実行しようとすると、新しい一連の問題に直面しています。そのためにBrowserifyを使用しています。

問題

私のテストコードでは、する必要がありrequire('casper')ます。CasperJS の世界での標準的なプラクティス。そのため、CasperJS をバンドルしないように browserify に指示する必要がありまし"browser": { "casper": false }package.json。これまでのところ問題はありません。しかし、次の問題が発生します。

Browserify は組み込み関数をオーバーライドし、browserify を機能させるすべてのことを行うrequire独自の実装を提供します。requireCasperJS は、require('casper')ディレクティブに遭遇するまで問題ありません。requireこれは、CasperJS が browserifyではなく 'ing'を行う必要があるのは 1 回だけです。そして、それは失敗します。

不完全な解決策

requireCasperJSは独自の方法を実装しているため、CasperJSはBrowserifyがオーバーライドするという事実に対処できないと確信していますrequire。その仮説をテストするために、結果のバンドルを手動で編集し、すべての出現箇所の名前をrequiretoに変更しましたbrowserifyRequire(browserify のrequire. CasperJSrequirerequire('casper')ing require. 実際、これにより期待どおりに機能するようになりました。

質問

繰り返しますが、browserify に独自の internal に別の名前を使用させる方法はありrequireますか? バンドル後にこの変更を行うスクリプトを作成できると思いますが、構成を介してこれを行う方法を見つけたいと思います。

別の質問

たぶん、Browserify の代わりに、CasperJS 内で CoffeeScript をバンドルして実行するための別のソリューションがありますか? 私はまだ1つを見つけていません....

0 投票する
1 に答える
177 参照

slimerjs - mocha-phantomjs-core - slimerjs がエラーなしでハングする

slimerjsでmocha- phantomjs -coreを使用 すると、CMD からテストを正常に実行できます。

Slimerjs ウィンドウが開き、ブラウザ ウィンドウが表示され、すべて問題ないように見えますが、CMD は終了しません (何かを待っているようです)。Slimerjs ウィンドウを閉じるまで何も起こりません。テスト結果(TAPレポーターを使用)をファイルとして出力したい。

それは可能ですか?

0 投票する
0 に答える
386 参照

ajax - casperjs + slimerjsを使用したconsole.logの適切なUTF-8?

0 投票する
0 に答える
639 参照

node.js - Slimerjs 必要なモジュールのエンコーディングを解決できません

Slimerjs Can't resolve required module, works withphantomjsを見たことがありますが、それはまったく何も説明していないので、あえてもう一度質問します。

私はこれをしました:

それで、どうやら、そこにあるはずですか?

今、https://www.npmjs.com/package/encodingに記載されているように、このテスト スクリプトを試していますtest_modload.js

...そして私はそれを実行しようとしますnode:

どうやら、ここで私は使用する必要がありますNODE_PATH

...そして、このコマンドはうまくいきます(つまり、何も返さず、エラーも出力しません)。

しかし、これを で試すとどうなるでしょうcasperjsか? スクリプトは次のようになります。

...そして、私が実行した場合:

... 繰り返しますが、すべて問題ありません (つまり、何も返さず、エラーも出力されません)。

casperjsしかし、slimerjsエンジンでこれを試してみましょう:

え…NODE_PATH行方不明ですか?

くそー、私はオプションを使い果たしました。私は今何をすべきですか、どうすればencodingと仕事をすることができslimerjsますか https://docs.slimerjs.org/current/api/require.htmlslimerjsのドキュメントの状態に注意してくださいを使用する必要がありますが、スタンドアロンの場合、次のように文句を言うでしょう:require.pathsnode

エラー: require.paths が削除されました。代わりに、node_modules フォルダーまたは NODE_PATH 環境変数を使用してください。

... whileslimerjsはこのエラーを出力しません。それでも、変更しても変更はありませんrequire.paths.push('/home/USERNAME/.nvm/versions/node/v4.0.0/lib/node_modules');-「「エンコーディング」モジュールを解決できません」。

正しいパスがあることを確認するために、ここにリストを示します。

...どうやらモジュールはそこにあります。

では、スクリプト内でモジュールslimerjsを見つけて使用するにはどうすればよいのでしょうか。encoding

0 投票する
1 に答える
142 参照

slimerjs - Slimer Js ウェブページの評価

一度呼び出されますが、私の Web ページは動的に変化しています。すべての変更を傍受するにはどうすればよいですか?

0 投票する
1 に答える
592 参照

javascript - getElementByXPathで機能するwaitForSelectorのcasperjs/slimerjs無効なセレクター?

私はこのHTMLファイルを持っていますtest_xpath.htm

このファイルのフォルダーで、次のように PHP CLI > 5.4 をサーバーとして実行します。

... HTML ページは で入手できますhttp://localhost:8080/test_xpath.htm

次に、この SlimerJS コードを実行します。

JS コードをそのまま実行すると (つまり、waitForSelectorパーツが無効になっているif(false)場合)、すべて正常に実行されます。

if(false)ただし、をに変更してその部分を有効にすると、次のif(true)ようになります。

http://docs.casperjs.org/en/latest/modules/casper.html#waitforselectorが言うので、私は本当にこれを理解していません:

指定されたセレクター式に一致する要素がリモート DOM に存在するまで待機して、次のステップを処理します

... http://docs.casperjs.org/en/latest/selectors.htmlの場所:

CasperJS は、DOM を操作するためにセレクターを多用し、透過的に CSS3 または XPath 式を使用できます。

したがって、XPath は問題ないはずです。さらに、次の場所でまったく同じXPATHを使用しています。

...そしてそこで動作しますが、失敗します:

なぜこれが起こるのですか - どこが間違っているのでしょうか? また、可能であれば、この XPath を で使用するにwaitForSelectorはどうすればよいですか?