問題タブ [headless-browser]

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.

0 投票する
2 に答える
2384 参照

watin - javascript/ajax をサポートする Specflow ヘッドレス ブラウザ テスト

BDD Specflow テストにWatiNを使用しています。それは仕事をしますが、遅いです。この記事で提案されているように、最近、SimpleBrowserに遭遇しました。SimpleBrowser は、Watin よりも大幅に高速です。主な欠点は、javascript をサポートしていないため、ajax 呼び出しをサポートしていないことです。

JavaScript をサポートするヘッドレス ブラウザを探しています。そのようなものはありますか? ワチンよりオススメ?

0 投票する
6 に答える
25058 参照

java - Java の完全な JavaScript サポートを備えたヘッドレス ブラウザ

以前のアプリケーションの一部でヘッドレス ブラウザとして HtmlUnit (開発者は素晴らしい仕事をしました) を使用してきましたが、次のアプリケーションがアクセスする一部の Web サイトでは JavaScript のサポートが機能しません。

  1. Python 用の QtWebKit バインディングについて聞いたことがありますが、私のアプリケーションは Java になりますか、それとも WebKit または QtWebKit 用の Java バインディングはありますか?

  2. javascript を完全にサポートする Java 用の優れたヘッドレス ブラウザを知っている人はいますか?

0 投票する
1 に答える
1574 参照

headless-browser - 優れたJavascriptをサポートするマルチスレッド可能なヘッドレスブラウザ

私は多くのヘッドレスブラウザーを知っていますが、Webクローラーをプログラミングしているため、複数のスレッドで安全に使用できるブラウザー(複数のスレッドから新しいインスタンスを作成できます)を知る必要があります。

HtmlUnitはしっかりしたjavascriptをサポートしていません。

QtWebKitQWebPageは複数のスレッドから作成できません。

PhantomJSはコマンドラインベースであるため、不要な新しいプロセスを開始する必要があります。

Awesomiumはマルチスレッドでも実行できません。

しっかりとしたJavaScriptをサポートし、複数のスレッドから問題なく実行できるヘッドレスブラウザを知っていますか?

プログラミング言語は気にしません。

0 投票する
1 に答える
401 参照

ruby - WindowsOSでヘッドレスでカピバラを使用する

Linuxでブラウザを開かずにCapybaraを実行するためにヘッドレスgemを使用しています。ヘッドレスはxvfbを使用します。Windows OSやMacに似たものはありますか?

0 投票する
3 に答える
2408 参照

c# - ajax/javascript/proxy とマルチスレッドをサポートするヘッドレス ブラウザまたはブラウザ コントロール?

私はここで多くのメッセージを見回しましたが、マルチスレッド化とスレッドごとのプロキシの構成、および ajax/javascript のサポートを可能にするブラウザー コントロールまたはヘッドレス ブラウザーをまだ見つけていません。

私は遠くにしようとしました:

  • awesomium - 実行する必要があるスレッドごとに生成する個別のアプリケーションを作成した場合、かなりうまく機能しますが、探しているものではありません。
  • simplebrowser - うまく機能しますが、js/ajax 操作が弱すぎて考慮できません
  • nhtmlunit - C# で起動して実行するにはあまりにも複雑に動作し、うまく動作しません
  • watin - プライベート セッションをインスタンス化できず、インスタンスごとにプロキシを持てない

私も他のものを試しましたが、これらは私がテストを覚えている主なものでした.

awesomium がマルチスレッドを実行できれば素晴らしいことですが、それは今後のリリースでのみ実行されると聞きましたが、これまでで最高のものでした。

テストのために他の人を推薦してもらえますか、または上記の質問を実行できる人はいますか?

ここでの私の主な目標は、ローカル ネットワーク Web サイトでのテストを自動化することです。

アップデート:

私が間違っている場合は修正してください。ただし、watin とは異なり、selenium webdriver (いくつか試してテストします) は、ブラウザーを制御するためにアプリケーション自体とは別にリモートサーバーを実行する必要があるようで、まだ代替手段を探しています。

更新 2:

chromiumdriver + Selenium と c# でマルチスレッドを実行できましたが、複数の cromiumdrivers + ブラウザーを生成するだけでなく、いくつかのスレッドに信じられないほどの量のメモリを使用します。

複数のスレッドを起動します。

クロム

これをいくつかのスレッドに使用する価値があるようにする他の方法はありますか?

0 投票する
1 に答える
6808 参照

maven - Xvfb と連携してヘッドレスで実行するように Selenium Maven プラグインを適切に構成する方法

背景:
Selenium-server-2.25.0 を J-Unit 4 と組み合わせて使用​​して、GWT アプリのいくつかの UI テスト シナリオを実行しています。私の IDE (Netbeans 7.2) で、プロジェクトを右クリックして [テスト] を選択すると、Firefox ウィンドウが (当然のことながら) 全体にポップアップし、Selenium テストが期待どおりに実行されます。コマンドラインから、同じものを実行mvn integration-testして表示することもできます。

目標:
これらのテストを Xvfb ディスプレイでヘッドレスで実行しようとしていますが、これを Maven で動作させるのに問題があるようです。事前に手動で実行できますexport display=:2(:2 は私の Xvfb ディスプレイです)。その後、テストは非表示のディスプレイで正常に実行されます。

問題:ここからの完全なエントリをpom.xml に含めて run して
、 何も変わらないようです。Windows が全体的にポップアップし、Xvfb ディスプレイで実行されていないテストがまだ表示されます。取り出して再度実行しても、同じ結果になります。ただし、フェーズを から に変更すると、Maven無効なライフサイクル フェーズについて不平を言います。そのため、それが完全に無視されているわけではないことがわかり、適切な pom.xml を編集しています。<plugin>mvn integration-testpre-integration-testqwertyasdf

ありがとう!

0 投票する
3 に答える
1781 参照

ruby - カピバラなどを使用して、読み込まれたすべてのリソースにアクセスする

ヘッドレス ブラウザーを使用して、Web ページ ドキュメントの読み込みが開始された後に読み込まれたすべてのリソース (スクリプト、画像、スタイルシートなど) に簡単にアクセスして一覧表示できる方法を探しています。ファイルの URL、ステータス コード、タイプなどに興味があります。

Networkタブ (開発者ツール) が提供する情報にプログラムでアクセスする方法を考えてみてください。

ここに画像の説明を入力

これを支援するRubyライブラリを知っている人はいますか?または、さらに良いことに、 Capybara(–webkit) を使用してこれを達成する方法がある場合は?


アップデート

ポルターガイストには、私が求めていることを行うメソッドがあるようです。network_trafficしかし、まだそれを研究する時間がありませんでした。やったらまた報告します。

0 投票する
2 に答える
534 参照

javascript - サードパーティのサイトで JavaScript イベントを検出する方法

サードパーティのサイトで割り当てられた JavaScript イベントとアクションを検出できる方法 (実装または理論上) はありますか?

If I am injecting JavaScript into a foreign site and want to avoid overwriting onsubmit, onclick, onfocus and other such events, is there any way to detect and extend such callbacks rather than overwrite them?

Ideas I've had:

  • run the site in a headless browser or JavaScript engine before hand to capture all executed JavaScript
  • parse the JavaScript on the fly and hope the third party JavaScript conforms to my parser's expectations
0 投票する
0 に答える
228 参照

webkit - URL にハッシュ タグを使用するページのクロール

サイトに関するいくつかの基本的なメタデータ (リンクを共有しようとするときに Facebook が行うのと同じ量) を取得するツールを作成しています: タイトル、説明、および主要な画像。これは、 NokogiriBeautifulSoup、またはその他の多数のツールを備えた HTML ページではかなり単純です。

ただし、ajax を多用するページはどうでしょうか。一部のサイト、特にハッシュ フラグメントを使用するサイトは、Google AJAX クロール標準に対応し、 _escaped_fragment_.

クロール ファームをセットアップするためにPhantomJSまたはヘッドレス Chrome / Webkit を使用する、わずかにスケーラブルなソリューションはありますか? または、ヘッドレスで JS を実行し、結果の HTML を引き出す別の方法はありますか?

スクリーンショットをサポートするツールのボーナスポイント:D

0 投票する
5 に答える
9104 参照

python - Python、QT、およびWebkitをヘッドレスサーバーで動作させるにはどうすればよいですか?

私はさまざまなことに使用するDebianLinuxサーバーを持っています。定期的に行う必要のあるWebスクレイピングジョブを実行できるようにしたいと思います。

このコードはここにあります

簡単なテストは次のようになります。

コンストラクターを呼び出すと、このメッセージで終了します(キャッチされない例外ではなく、stdoutに出力されます)。

ヘッドレスサーバーでPython(2.7)、QT4、およびWebkitを使用するにはどうすればよいですか?何も表示する必要がないので、設定や調整が必要なものをtweekできます。

私は代替案を検討しましたが、これは私と私のプロジェクトに最適です。Xサーバーをインストールする必要があった場合、最小限のオーバーヘッドでどのようにインストールできますか?