問題タブ [casperjs]
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 - NodeJS で Web サイトを読み込み、レンダリング前にページから要素を削除する
私は最近NodeJをいじり、ウェブサイトをロードしてスクリーンショットを保存しました。具体的には、PhantomJS を使用して Web サイトを読み込み、スクリーンショットを保存しました。私は CasperJS と ZombieJS も使用しましたが、これらのツールのいずれも、ロードする前に Web サイトのリソースをいじることを実際に許可していません。それは可能ですか?
明確にするために、私は任意のウェブサイトをロードしたいと思います.stackoverflow.comと言って、ロード時間を計算し、スクリーンショットを保存します. それは簡単ですが、2回目の実行では、同じWebサイトをロードして、たとえばjqueryリソースを削除し、そのロード時間を計算したいと考えています。
phantomjs と casperjs には onResourceRequested や onResourceReceived などのコールバックがあるようですが、リクエストを中止するメソッドはありません。出来ますか?これを行うphpスクリプトを介してリクエストをプロキシしたくありませんが、それが代替手段です。
google-closure-compiler - Google Closureを使用してCasperJSプロジェクトを最適化するには?
CasperJS テストの run.js コード (https://github.com/n1k0/casperjs/blob/master/tests/run.js) を最適化しようとしているので、それをさらに使用して最適化する方法を理解できます。私が書いたテストをさらに進めます。これは、コンパイラに ADVANCED_OPTIMIZATIONS フラグを使用して最適化しようとしていた CasperJS プロジェクトのサンプル run.js です。(https://github.com/n1k0/casperjs/blob/master/tests/run.js) ただし、最適化されたコードは次のとおりです。
明らかに、これはコンパイラーによって通知されているため失敗しています (例: JSC_INEXISTENT_PROPERTY: Property casperLoaded never defined on phantom at line 2 character 5 if (!phantom.casperLoaded) )
Closure Compiler を使用して、プロジェクト内のすべての JS ファイルを依存関係で最適化し、これらのエラーを回避してさらに先に進む方法を教えてください。
Closure のドキュメントを調べましたが、この場合に必要なアプローチを理解できませんでした。
参考までに、私は Closure compiler.jar を使用していました
phantomjs - Casperjs は JavaScript オブジェクトを検査します
casperjs スクリプトでオブジェクトを検査するにはどうすればよいですか?
試しconsole.log(arguments)
てみましたが、[object Arguments] または [object Object] しか表示されません。
次のようなものを期待したいと思います: { 'firstparam': 'value' ... }
Javascript コンソールや Node.js のように...
たぶんそれはPhantomjsの質問ですが、よくわかりません...
javascript - Extjs クリック イベント、ダブル ファイア
私はCasperjsとExtJSで遊んでいます
これが私の遊び場です:http://jsfiddle.net/charlesbourasseau/fEDCu/
これが私のtest.coffeeです: casper = require('casper').create logLevel: 'debug' verbose: true
出力は次のとおりです。
なぜ私が 2 を取得するのか誰かに考えがあり[info] [remote] Click!
ますか?
javascript - PhantomJsとCasperJsを使用してinjectJs
私はCasperJSを使用して、動的コンテンツを含むWebサイトをスクレイプしようとしていますが、これまでのところ失敗しています。このWebサイトでは、いくつかのjsライブラリ(プロトタイプなど)を使用して、オートコンプリートを使用してコンテンツを作成しています。したがって、私はいくつかの値を挿入し、イベントをトリガーしてコンテンツの作成を開始しようとしています。イベントの挿入とトリガーは正常に機能しますが、コンテンツは作成されません。
私はCasperJSを初めて使用し、ライブラリへの相対パスに問題があることがわかりました。私の問題は、ライブラリがページ環境に正しくロードされていないことが原因であると思われます。したがって、私はinjectJs
このようにそれらを注入するために使用しようとしました
// ...キャスパーを作成し、他のことを行います
casper.then(function(){
残念ながら、これは両方の関数に対してfalseを返します。スクリプトへのパスは正しいですが、他にこの問題の原因はどこにあるのでしょうか。
助けてくれてありがとう。
javascript - casperjsでxmlhttprequestsを偽造する
casperjs を使用してエンドツーエンドのテストを作成しており、ajax サーバーの応答を偽造したいと考えています。
私は、次のように、xmlhttprequest オブジェクトをモックし、常に期待される結果を返す単純なスクリプトを含めるというアイデアを思いつきました。
次に、次のようsetup_ajax
にキャスパー テストを呼び出します
しかし、今後の ajax リクエストは、まだ私の xmlhttprequest 実装を避けているようです。
$.ready() を使用してその場で setup_ajax を実行し、casper からも呼び出してみましたが、どちらも機能しませんでした
さらに興味深いことに、オブジェクトの存在のチェックが奇妙なことに失敗します。
ただし、sinon は適切に含まれています。少なくとも、setup_ajax 関数の外部で casper を呼び出したときにエラーは発生しませんでしたが、故意に sinon を除外したときにエラーが発生しました。
casperjs で xmlhttprequests をモックするアイデアはありますか?
javascript - XPath式を使用してCasperJSの要素の属性を取得する方法
行間にこれを含むWebページがあります:
XPath を使用して「href」属性を抽出する必要があります。CasperJS の API には、 clientutils.getElementByXPathに関する情報が記述されています。
これが私のコードです:
しかし、それは失敗します。これを返します:
forms - CasperJSのfillメソッド
フォームに記入して送信したいのですが。
スクリプトの一部を確認してください:
そして、私はこのエラーを受け取りました:
アサート結果に問題がないため、フォームに入力できない理由がわかりません。
unit-testing - casperjs : 「allTests」などの phpunit のようなテスト スイートを整理できますか
テスト スイートを phpunit のように整理したい
同じプロジェクトの他の場所にあるすべてのテストを追加するスクリプト
phantomjs - CasperJS または PhantomJS でリソース コンテンツを取得する
CasperJS には「ダウンロード」機能と「on resource received」コールバックがありますが、コールバックにリソースの内容が表示されず、リソースをファイルシステムにダウンロードしたくありません。
リソースのコンテンツを取得して、スクリプトで何かを実行できるようにしたいと考えています。これは CasperJS または PhantomJS で可能ですか?