問題タブ [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.
node.js - アップグレードできません - Slimerjs がありません...?
ノード v5.0.0 および npm v3.3.9 を使用して OSX (El Capitan) で実行しています。アップグレードを試みる場合:
以下のエラーが表示されます。
このslimerjs(それが何であれ)をローカルとグローバルの両方でアンインストールしようとしましたが、それでも失敗します。指定されたディレクトリを見ると、実際には0.9.5がインストールされていませんが、0.9.6が見つかります
では、何が必要で、なぜ新しいバージョンに満足できないのでしょうか? そして最も重要なことは、どうすれば修正できますか?
slimerjs - 終了コードを伝達できません
javascript
私は次のように私のコードを終了しようとします:
しかし、私は1の終了コードを取得しません。私も試してみます:
終了コード 0 を永遠に受け取ります。
アイデア/ヘルプはありますか?
javascript - SlimerJS で AJAX リクエストのレスポンスボディを取得する
Web サイト用にSlimerJSを使用してテストを作成しており、サーバーからの応答本文を確認する必要があります。次のコードを使用して応答を取得しています。
私は応答を受け取りますが、デフォルトでは過度のメモリ使用を防ぐためにSlimerJS は応答本文を空のままにしているため、次のようなものを使用して特定の形式で本文を空のままにしないように指示しない限り、空の本文を受け取ります。
css、jpg、avi などの拡張子を持つファイルではこれがうまく機能することは理解していますが、サーバーからの AJAX 応答についてはどうでしょうか。応答は JSON 形式で、応答本文は空のままです。
phantomjs - Casperjs は JavaScript コードを実行しません
私はページを持っており、ページのヘッダーに通常のスクリプト タグがある一連のスクリプト (jQuery など) と、index.js というコンパイル済みスクリプトを参照しています。後者は大きなもので、約 1.2M です (理由は聞かないでください)。
私のindex.htmlは次のようです:
問題は、PhantomJS エンジンを使用すると、スクリプトがどのプラットフォームでも実行されないことです。SlimerJS/XUL を使用すると、Windows では実行されますが、OSX では実行されません。私は通常のwaitForでそれを検証しており、グローバル変数の値を評価していますが、特別なことは何もありません:
一方、jQuery はどちらの環境でも初期化されます。jQuery コードを評価コンテキストでうまく実行できるので、これはパスします。
ページ イベントをログアウトすると、index.js が HTTP 結果 200 でロードされ、実行されないことがわかります。
誰かが以前にこれを経験しましたか?PhantomJS または SlimeJS には、スクリプトのサイズ/複雑さに関するプラットフォーム固有の制限がありますか?
javascript - CasperJS: 再帰的な casper.open が 2 回目の発生時に ajax 応答で失敗しました
私はcasperJSとslimerJSエンジンを使用して、ajax応答によってロードされたビデオを取得しています。
ステップ
- URL のリストを取得する
- リスト内の各 URL に対する casper.open の再帰呼び出し
- 各casper.open呼び出しは、前のcasper.openが ajax 応答を送信するのを待つ必要があります。
最初の 2 点はうまく機能します。3番目に問題があります。次のcasper.openをロードする前に、ページのロードが完了するのを待つ必要がないことを理解することが重要です。各 URL から 1 つの ajax 応答を待つだけです。この応答をキャッチすると、この URL を閉じて次の URL を開くことができます。
そのために、再帰ループは最初の出現から始まります。次に、resource.received イベントでネットワークをリッスンし、特別な contentType を待ちます。この contentType は、ビデオをロードするための URL を見つけることができる応答を返します。この URL を 1 つの配列に保存し、このcasper.openを閉じて次の配列を開始できます。
これが私のコードです:
問題は、最初のcasper.openがページを開き、適切な contentType をキャッチするのを待って、配列ソースに適切な URL を保存することです。次に、次のcasper.openが呼び出され、プログラムはwaitForに永遠に留まります。それは、contentType が決してキャッチされないためです.しかし、それは前のものと同じ種類のページです。最初にこの 2 ページ目から始めると、うまくいきます。機能しないのは再帰ループの次の発生のみであり、最初の発生は問題ではありません。
また、これらのページをブラウザー (chrome または firefox) で開くと、うまく機能します。彼は contentType をキャッチします。だから、問題は私のプログラムから来ています。
resource.received リスナー中にエラーが発生することがあります:「エラータイプ $.cookie」。しかし、jquery.cookie.js があったとしても、機能しません。
ページを閉じるか、Cookie を保存して、各casper.openの間にページをクリアしようとしましたが、まだ機能していません。
前もって感謝します。
iframe - SlimerJS (または PhantomJS) を使用して iframe 内のナビゲーター データを変更する
何らかのトリックにより、新しいウィンドウ (window.open、target=blank など) と SlimerJS を使用した iframe の両方でヘッダーを処理することができました。新しいウィンドウのナビゲーター データ (navigator.appVersion など) を変更することもできますが、iframe でこれを行うことに固執しています。onInitialized メソッドは、メイン ウィンドウと新しいウィンドウでのみ正しく機能し、iframe では機能しないようです。
コードの一部を次に示します。
PhantomJS でやってみましたが、以下の場合は「webpage」ではなく「this」が使えないようです。
メイン ページと子ページの両方で onInitialized として定義できるように、この関数を「this」オブジェクトで動作させたいと考えています。
とにかく、主な質問は Phantom のコードではなく、SlimerJS のコードに関するものです。
phantomjs - SlimerJS でダウンロード ダイアログ ボックスを処理する
mp3 ファイルをダウンロードできるリンクをクリックするスクリプトを作成しました。私が直面している問題は、スクリプトがそのリンクのクリックをシミュレートするときに、ダウンロード ダイアログボックスが次のようにポップアップすることです。
ここで、このファイルを任意のパスに保存し、このプロセス全体を自動化したいと考えています。このダイアログ ボックスの処理方法がわかりません。
node.js - SLIMERJSLAUNCHER 環境変数がありません。Firefox または XulRunner へのパスで設定します
みんな!
casper で 1 つのテストを実行しようとすると、次のようになります。
casperjs --engine=slimerjs test.js
そして、このメッセージを受け取りました
SLIMERJSLAUNCHER environment variable is missing. Set it with the path to Firefox or XulRunner
XulRunner、Firefoxがインストールされています。私はMac OSを使用しています。