Phantomjsは、スクリプト可能なヘッドレスブラウザです。これは、Webサービスの自動テストに不可欠な助けとなる可能性があり、アクセスしているページのスクリーンショットを生成し、ページの閲覧中にトラフィックを効果的に印刷し、その機能のいくつかを挙げます。 PhantomjsはJavaScriptでスクリプト化できるため、慣れ親しんでいる別の言語を学ぶ必要はありません。残念ながら、現在開発は中断されていますが、最後の安定したリリースがダウンロード可能です。
このチュートリアルでは、RHEL 8 / CentOS 8にphantomjsをインストールし、パッケージに付属の例の1つを実行して、ツールが機能することを確認します。
このチュートリアルでは、次のことを学びます。
- phantomjsパッケージをダウンロードする方法
- バイナリを抽出してパスに配置する方法
- phantomjsを使用してサンプルスクリプトを実行する方法
phantomjsを使用してサンプルスクリプトを実行します。
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
Phantomjs 2.1.1 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
RHEL 8 /CentOS8にphantomjsをインストールする方法ステップバイステップの説明
Phantomjsは本当に自己完結型です。必要なパッケージがいくつかある場合は、root
は必要ありません。 自分でツールをインストールするためのアクセス(つまり、ユーザーのみがアクセスできます)。システムのすべてのユーザーがこのツールを使用できるようにするために、このツールをシステム全体のパスに配置します。これには、特権ユーザーが必要です。
- 最初に、必要なパッケージがあることを確認する必要があります。
$ rpm -q glibc glibc-2.28-18.el8.x86_64 $ rpm -q fontconfig fontconfig-2.13.1-2.el8.x86_64
そうでない場合は、
dnf
を使用して上記のパッケージをインストールできます :# dnf install glibc fontconfig
- 公式ダウンロードサイトにアクセスして、必要なURLを見つけることができます。この場合、Linuxx86_64のパッケージのアドレスです。
/opt
を入力します バイナリ、例、およびreadmesを格納するディレクトリ:# cd /opt
そして、
wget
でパッケージをダウンロードします :# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
- 次に、アーカイブを抽出します:
# tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
- ユーザーがインストールする(つまり、ディストリビューションのリポジトリから発信されていない)バイナリとツールの一般的な場所は、
/usr/local/bin
です。 。 RHELでは、すべての人の$PATH
にもあります デフォルトでは。このディレクトリにシンボリックリンクを作成します。そうすることで、新旧のユーザーは単純なbashオートコンプリートでシンボリックリンクを見つけることができます。# ln -s /opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
- テストするには、
phantomjs
があります パス上で、システムのユーザーとしてパスなしでコマンドを入力できます:$ phantomjs --version 2.1.1
- バイナリ自体は現在パス上にありますが、分散パッケージに付属している例はそうではありません。これらの例を実行してツールを試すことができます。これにより、phantomjs用の独自のスクリプトの作成を開始できます。以下の例、
netlog.js
phantomjsがWebサイトにアクセスしている間に生成されたすべてのトラフィックを、ヘッダー情報やバイナリデータを含めて出力します。この例では、有名なinfo.php
に対して実行します。 (phpのphpinfo();
呼び出されます)ローカルで実行されているWebサーバーによって提供されます。$ phantomjs /opt/phantomjs-2.1.1-linux-x86_64/examples/netlog.js http://localhost/info.php
要求されたデータと受信したデータがすべて提供されるため、電話をかけるだけで長い出力が生成されます。
requested: { "headers": [ { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1" } ], "id": 1, "method": "GET", "time": "2019-01-15T17:48:57.393Z", "url": "http://localhost/info.php" } received: { "body": "", "bodySize": 60718, "contentType": "text/html; charset=UTF-8", "headers": [ { "name": "Date", "value": "Tue, 15 Jan 2019 17:48:57 GMT" }, { "name": "Server", "value": "Apache/2.4.35 (Red Hat Enterprise Linux) mod_perl/2.0.10 Perl/v5.26.2" }, { "name": "X-Powered-By", "value": "PHP/7.2.11" }, { "name": "Keep-Alive", "value": "timeout=5, max=100" }, [...]