質問

そこで、JavaScript を実行する必要があるスクリプトを PHP で作成しました。JavaScriptをphpで実行すると同時に、いくつかのLinuxツールを使用して自動化する方法について、解決策を見つけるのに苦労しました(ブラウザで実行することは選択肢ではないので、crontabにする必要があります) )。「php」コマンドは JavaScript を実行しないため、使用することもできません。そこで解決策を見つけたのがオオヤマネコでした。

それで、ここに私の問題があります:何らかの理由で、JavaScript は私のブラウザでは問題なく動作しますが、Lynx では動作しません。Lynx を使用すると、JavaScript を介さずにページが読み込まれるだけです。Lynx で JavaScript をデバッグする方法はありますか。Google Chrome にあるような、コンソールから何が起こっているかを確認できるので、スクリプトが Lynx で実行できない原因を見つけることができます。

編集:

どうやらlynxはJavaScriptをサポートしていないようです。その場合、私の質問は、何が起こるかということです。このスクリプトはブラウザと同じように Linux コマンド プロンプトから実行する必要があります。この場合、OS が重要であれば、私は最新の Ubuntu を実行しています。

役に立ちましたか?

解決

Lynx は Javascript をサポートしていません。

アップデート 1

あなたがやろうとしていること(パスワード暗号化にJavaScriptを必要とするサイトにログインする)の概要に基づいて、次の使用を検討することを強くお勧めします。 セレン または別のブラウザ自動化パッケージ。たとえそのようなレイヤーがなくてもパスワードの送信が適切に機能したとしても、Lynx のような最小限のブラウザを使用している場合、サイトにはおそらく別の問題が発生するでしょう。

他のヒント

Lynx は JavaScript をサポートしていませんが、代替テキスト ブラウザーをサポートしています Eリンク SpiderMonkey に基づいています。ただし、これはやや実験的です。を見てください マニュアル それをコンパイルする方法について。

それに、あなたがここで何を達成しようとしているのか、私は本当に困惑しています...

必要なものは と呼ばれます ヘッドレスブラウザ. 。例えば ファントムJS もその1つです。一番人気だと思います。

ただそうしたいのなら JavaScriptを実行する コマンドラインから次のようなことをお勧めします ノードjs または オットー. 。ヘッドレス ブラウザ全体としてのパフォーマンス フットプリントははるかに小さくなります。

単純な Javascript 以外のものが必要な場合は、たとえば、DOM 程度の場合は、試してみてください。 ヘッドレスブラウザ (クロム, ファントムJS)他の人が提案したように。

ブラウザが必要なだけでなく、次のことを実行したい場合 自動テスト そのブラウザを使用すると、 セレン まだまだこれからです。

どのくらい必要かはユースケースによって異なります。

アップデート: 数ヶ月から使えるようになる ヘッドレスブラウザとしてのChrome 現在 (Firefox も登場予定です)。

Selenium が最適ですが、お気づきのとおり、Selenium にはディスプレイが必要です。次に、これを起動する必要があります。そして、やだやだやだ、非常に複雑なセットアップが進行中です。

ありがたいことに、あります さらに別の これらすべてを自動化するには、自動化フレームワークを使用します。ジェンキンスをお勧めします。Xサーバーを起動するためのアドオンがすでに含まれています。

したがって、おおよそのパイプラインは次のようになります。

  • crontabのことは忘れてください
  • jenkins ubuntu サーバーをセットアップする (x がインストールされている)
  • jenkins xvncserver(?) アドオンをインストールします -- それがその名前だと思います。とにかく、これにより XHOST が自動的に起動されます。
  • 問題の場所に移動する Selenium Webdriver スクリプトを作成します (最も簡単な * Selenium IDE を使用することです)
  • Selenium IDE に Webdriver スクリプトを任意の形式で出力させ、それを jenkins で実行させます。私は個人的に Java 形式を使用し、ant を使用してビルドします。

ご想像のとおり、これは非常に複雑な設定ですが、技術的には要求どおりに動作します。wget を Lynx にパイプするほど簡単ではないのが残念です。

もう 1 つの方法は、ブラウザを想定せずに Web ページを DO STUFF に書き換えることです。たとえば、GET パラメータを取得して「自動モード」にすると、cron から実行されていると想定され、より短い回路で正常に実行されます。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top