問題タブ [htmlunit]
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.
java - HtmlUnitはページを閲覧するときに画像をロードしますか?
上記のように。画像を読み込みますか?
web-crawler - HtmlUnit-ElementNotFound例外
HtmlUnitを使用しています[ C#を使用したWebサイトのテストを参照]。奇妙な問題が発生しまし
た。ページを呼び出し、ボタンをクリックして、次のページを取得しようとしています。正常に動作しますが、取得したページのフィールドにvalue属性を設定しようとすると、ElementNotFoundExceptionが発生することがあります。
Sleep(1000)を追加しようとしましたが、役に立ちません...
何か案が?
java - HtmlUnit テスト ケースにユーザー名/パスワード認証情報を追加するにはどうすればよいですか?
http プロトコル経由で svn リポジトリにアクセスしています。URL を Internet Explorer に入力すると、ユーザー名とパスワードを求めるダイアログ ボックスが表示され、ファイルがブラウザに正しく読み込まれます。
私がする必要があるのは、この svn リポジトリからさまざまなタグから大量のファイルをダウンロードすることです。HtmlUnit を使用してこれらのファイルのダウンロードを自動化しようとしていました。残念ながら、「401 Authorization Required ...」というエラーが表示されます。HtmlUnit テストでユーザー ID/パスワード情報を設定する方法がわかりません。
親切な魂がこれで私を助けてくれませんか?
java - AJAXアプリケーションをクロール可能にしますか?Google App Engineで簡単なWebサービスを構築してHTMLスナップショットを作成するにはどうすればよいですか?
現実世界の問題:
私のアプリはHerokuでホストされていますが、Herokuは、AJAXコンテンツのインデックスを作成するためにGooglebotのHTMLスナップショットを生成するためのヘッドレス(GUIレス)ブラウザー( HTMLUnitなど)を実行するためのソリューションを提供できません。
私の提案する解決策:
まだ読んでいない場合は、AJAXアプリケーションをクロール可能にするためのGoogleの完全な仕様を読むことをお勧めします。
私が持っていると想像してください:
- ドメイン上のHerokuでホストされているSinatraアプリ
http://example.com
- アプリには、ページの上部にTabA、TabB、TabCのタブがあります
- 各タブの下には、SubTab1、SubTab2、SubTab3があります。
- URLが
http://example.com#!tab=TabA&subtab=SubTab3
クライアント側の場合はonloadで、Javascriptはlocation.hash
AJAXを介してTabA、SubTab3コンテンツを取得してロードします。
注:ハッシュバン(#!)はGoogle仕様の一部です。
Google App Engine(GAE)でホストされるシンプルな「Webサービス」を構築したいと思います。
- URLパラメータを受け入れます
http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3
(例:URLパラメータはURLEncodedである必要があります) - HTMLUnitを
http://example.com#!tab=TabA&subtab=SubTab3
実行して、サーバーでクライアント側のJavaScriptを開いて実行します。 - HTMLUnitは、すべてが完了すると(または、45秒が経過すると)DOMを返します。
- 返されるコンテンツはJSON/JSONPを介して返送されるか、URLが生成されてGoogle App Engineサーバーに保存されたファイルに返されます(ファイルベースの「キャッシュされた」結果の場合)...ここで提案を開きます。ファイルへのURLが返された場合は、CURLを使用してソースコード(別名HTMLスナップショット)を取得できます。
私のhttp://example.com
アプリは...への呼び出しを管理する必要がありhttp://htmlsnapshot.appspot.com
ます基本的に:
- Googlebotsの呼び出しをキャッチします
http://example.com/?_escaped_fragment_=tab=TabA%26subtab=SubTab3
(googlebotクローラーは特定の文字をエスケープします(例:%26 =&))。 - バックエンドからにリクエストを送信します
http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3
(urlパラメータはURLEncodedである必要があります) - 返されたHTMLスナップショットをフロントエンドにレンダリングします。
- Googleはコンテンツのインデックスを作成し、喜んでいます。
GoogleAppEngineまたはJavaまたはHTMLUnitの経験はありません。
私はそれを理解することができるかもしれません...そして私がそうするならば私の結果を投稿します。
そうでなければ、これは誰かがこのようなWebサービスをセットアップするための初心者のステップバイステップガイドを概説するキックアスブログ投稿を書くための非常に良い機会だと思います。
これにより、より多くの人々に優れた(そして無料の)GoogleAppEngineを紹介します。また、間違いなく、より多くの人々がクロール可能なAJAXコンテンツにGoogleの仕様を採用することを奨励します...私たち全員が恩恵を受けることができるものです!
グーグルの仕様がより受け入れられるにつれて、ヘッドレスブラウザを設定する「ハードル」は多くの開発者に答えを求めてグーグルを送るでしょう!名声と栄光への答えを今すぐ手に入れましょう!(編集:少なくとも私はあなたの賞賛を歌います)。
@_chrisjacob
解決策について話し合いたい場合は、ツイッターで私に連絡してください。
groovy - HtmlUnitを使用してプログラムでフォームを送信できない
GroovyスクリプトでHtmlUnitを使用して、www.goodreads.comサイトからcsvファイルを取得しています。このスクリプトは最近まで機能していましたが、奇妙なSSLエラーが発生していました。
これが使用されているGroovyコードです
そして、関連する@Grab
このコードが実行されるたびに、私は持っています
184行目signInForm.getInputByName("next").click()
は、エラーが発生したと思われる場所の1つです。たぶんそれはgoodreadsのSSL実装の選択と関係があります。
Opera、Firefoxを使用してそのサイトに正しくログインできることを考えると、そのエラーはどのように表示されますか?そして、もっと重要なのは、それを修正するために何ができるでしょうか?
さらに、通知フォームの宛先はurlhttps ://www.goodreads.com/user/sign_inです。
このURLを開くと、OperaがTLS v1.0 256ビットAES(1024ビットDHE_RSA / SHA)として示すページにアクセスできます。
java - HtmlUnit は window.open 後に JavaScript の実行を停止します
最近、HTMLUnit 2.4 から 2.5 に更新しました (最新バージョンを使用しますが、非推奨の API のためにリファクタリングするコードがたくさんあります)。現在、ウィンドウを開く JavaScript で問題が発生しています。
テスト中のページは、レポートの「ロード中の画面をお待ちください」です。ページは新しいウィンドウを開き、最初に印刷を開始したページにリダイレクトします。
したがって、JavaScript は次のようになります。
HtmlUnit 2.4 では、スクリプトは引き続き実行され、元の Window オブジェクトを取得すると、リダイレクトが実行されます。ただし、HtmlUnit 2.5 にアップグレードした後も、元のウィンドウは「お待ちください」ページのままで、リダイレクトは実行されません。window.open の呼び出し後に JavaScript の実行が停止したように見えます。
手動でテストした場合、ページが正しく動作することを確認しました。また、 window.open 呼び出しの後に別の JavaScript を試して、その特定の呼び出しが問題ではないことを確認しました。
このような問題と潜在的な回避策を知っている人はいますか? jQuery との互換性のために、HtmlUnit 2.5 にとどまらなければなりません。
warnings - HtmlUnit の警告をオフにする
HtmlUnit の警告、メモ、エラーをオフにする方法を知っていますか?
java - HtmlUnitのWebページでajaxで更新されたテキスト値を取得するにはどうすればよいですか?
私はここにAjaxによって継続的に更新されているウェブサイトを持っています。JavaでHtmlUnitを使用していて、更新されたテキスト値を取得する必要がありますが、方法がわかりません。
例:TextValue。「TextValue」が変更された場合、どうすれば新しい値にアクセスできますか?DomChangeListener(追加または削除されたノード用)とHtmlAttributeChangeListenerがあることは知っていますが、変更されたテキスト値を取得する方法がわかりません。
必ずしも通知(イベント)である必要はありません。x秒ごとに手動で値を確認することは問題ありませんが、私が試した唯一の方法はpage.asXMLとpage.asTextごとですが、ソースは更新されません。値は更新されません。ページがロードされたときの最初の値は常にです。
誰かがこのタスクを達成する方法を知っていますか?たぶん、別のフレームワークまたはそれを行うための完全に別の方法ですか?ありがとう。
編集:サーバー上でヘッドレスで実行する必要があります。そして、更新されたソースコードを取得するために常にページを更新するのではなく、タスクを実行します。
javascript - AJAXコンテンツをGoogleでクロール可能にするにはどうすればよいですか?
私はjQueryを多用し、次のようにAJAXを介してコンテンツをロードするサイトで作業しています。
GoogleがJavascriptを介して動的にロードされたコンテンツのインデックスを作成しないことに気付いたので、この問題の解決策を探していました。
GoogleのMakingAJAXApplications Crawlableドキュメントを100回読んだのですが、それを実装する方法がまだわかりません(ほとんどの場合、サーバーに関する知識が限られているためです)。
だから私の最初の質問は次のようになります:
- あなたが知っている最初から最後までこれを文書化するまともなステップバイステップのチュートリアルがありますか?私はそれをグーグルしようとしました、そして、私は何も有用なものを見つけていません。
そして第二に、まだそこに何もない場合、誰もが説明することができるでしょうか:
'_escaped_fragment_を含むURLのリクエストを処理するようにサーバーを設定する方法'
サーバーにHtmlUnitを実装して、クローラーに表示するページの「HTMLスナップショット」を作成する方法。
誰かが私のためにこれに光を当てることができれば、私は信じられないほど感謝しています、事前に感謝します!
-ベン
proxy - HTMLUnitプロキシが正しく機能しているかどうかを確認する方法
WebBrowser のプロキシが正常に動作しているかどうかを確認するにはどうすればよいか知っていますか?