0

特定のダッシュボードでリストを作成するテスト ケースを自動化する必要があります。PhantomJS ヘッドレス ブラウザを使用することにしました。私はそれが初めてなので、自分でテストを作成してみました。以下は、ターゲット Web サイトを開くためだけに実行した手順です。

  1. 作成されたディレクトリphantoms
  2. cd phantomsコマンドを使用してファントムモジュールをインストールしましたnpm install phantom --save
  3. 作成されたファイルcreatelist.js:

createlist.js の内容:

var phantom = require('phantom');
var page = require('webpage');
page.open('http://facebook.com', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('example.png');
  }
  phantom.exit();
});

コマンドnode create_list.jsを実行すると、次のエラーが発生します。

page.open('interact2.responsys.net/interact/jsp/jindex.jsp&#‌​39;, function(st atus) { ^ TypeError: page.open is not a function at Object.<anonymous> (C:\Users\shilshet\New folder\phantom\create_list.js:3 :6) at Module._compile (module.js:413:34)

次のようなコマンドを実行しようとすると

phantomjs  C:/Users/shilshet/New folder/phantom/create_list.js

このエラーが発生しています

bash: phantomjs: command not found

注:コマンドの実行にcygwinを使用しています

私は何が間違っているのですか?node.js と同じフォルダーに、phantomjs モジュールもインストールしました。

ヘッドレスブラウザを使用する以外に、REST API呼び出しを介してOracle responsysでプロファイルリストを作成するにはどうすればよいですか?

4

2 に答える 2

1

ここでの最初の答えは機能するはずですが、必要なことを達成するための最良の方法ではありません。問題を解決するよりクリーンな方法は、phantomjs 実行可能ファイルの場所を ~/.bash_history などのファイルで定義された PATH 変数に追加することです。

ファイルが定義されていない可能性があるため、ファイルを作成してから、PATH="/path/to/phantomjs/executable" を追加する必要がある場合があります。

GUI 経由で PATH 変数を編集する場合: Windows GUI 経由で PATH 変数を編集します。

これを行う必要がある理由は、実行可能ファイルがどこにあるかを判断するために、システムが「PATH」変数で定義されたパスをネイティブに反復処理するためです。phantomjs は PATH 変数に含まれていない (環境に存在しない) ため、'phantomjs' を実行しようとすると、システムは呼び出す実行可能ファイルを単純に認識できません (または、それが存在することを認識しません)。

これがより良いアプローチである理由は次のとおりです。

  1. 実行するたびに、phantomjs が配置されている場所のパスを明示的に書き出す必要はありません (見栄えがすっきりするだけです)。
  2. 複数のファイルから phantomjs を呼び出して、phantomjs の保存場所が変わったらどうなりますか? phantomjs の絶対パスをどこでも明示的に入力した場合は、入力したすべての場所を変更する必要があります。悪夢!このアプローチでは、1 か所で変更するだけです。PATH 変数を定義するファイル
  3. 新しいファイル パスを PATH 環境変数に追加するのはかなり慣習的です。散らかすべきではありませんが、この場合は追加するのが理にかなっています

これについては、「ヘッドレスブラウザを使用する以外に、REST API呼び出しを介してOracle responsysでプロファイルリストを作成する方法を教えてもらえますか?」...別の質問をすることをお勧めします。個人的にはわかりませんが、新しい質問をすると、そうする人からサポートが得られるかもしれません.

お役に立てれば!何か助けが必要な場合は、お知らせください。

于 2016-11-21T21:44:23.690 に答える
0

PhantomJS を実行する 2 つの方法を混同しました。

より簡単で単純な方法は、コマンド ラインから PhantomJS を起動し、引数としてスクリプトのパスを指定することです。Windows では、次のようにします。

"C:/Users/shilshet/New folder/phantom/phantomjs.exe" "C:/Users/shilshet/New folder/phantom/create_list.js"

ここの引用符に注意してください。ファイル名にスペースがあるため、引用符が必要です。

于 2016-11-21T16:09:32.590 に答える