2

.net以外の組み込み(代替)を参照する前に

知りたいのですが

組み込みの.Netクラスは、以下を使用することを提案できます。

WebBrowserWebBrowserBaseクラス

私が知りたいのは:これら2つの違いは何ですか?

msdnが後の1つで述べたように-WebBrowserBase-

「このAPIは.NETFrameworkインフラストラクチャをサポートしており、コードから直接使用することを目的としたものではありません」

質問は簡単なタスクから始まりました:ウェブサイトからファイル(データソースxml)を取得します。シンプルに聞こえますか?したがって、任意の方法を使用できます...できれば最も単純でリソース効率の高い方法です。

しかし

シナリオは次のとおりです。WebClientがメインブラウザ(私の場合はIE9)と同じリソースを使用していることを理解できるように、同じソース(信頼できる単一のソース)が最近Cookieを使用して自動トラフィックをブロックしていました。

....そして私が行った調査の後、ファイルレトリバーとしてWebBrowser"Engine"を使用しました...

仕事を完璧に行います。

(Microsoft IEだけでなく)任意のものを使用できます

私があなたに訪問させた他のテストについて:

http://seleniumhq.org/docs/03_webdriver.html

+

https://code.google.com/p/selenium/downloads/list

4

1 に答える 1

6

あなたの問題

シナリオは、同じソース(信頼できる単一のソース)が最近Cookieを使用して自動トラフィックをブロックしていたというものです`

さて、それがあなたの問題(クッキー)であるなら、なぜあなたはこのウェブクライアントを試してみませんか?

public class CookieWebClient : WebClient
{
    private readonly CookieContainer _cookies = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = _cookies;
        }
        return request;
    }
}

WebBrowserとWebBrowserBase

WebBrowserとWebBrowserBaseの違いについては、WebBrowserはWebBrowserBaseを継承して拡張し、完全に機能するWebブラウザーにします。WebBrowserBaseが役立つのは、サポートされているものを超えてWebBrowserをカスタマイズしたい場合です。これをオーバーライドし、WebBrowserBaseを使用して機能などを拡張できます。原則として、どうしても必要な場合を除いて、プレーンなWebBrowserコントロールを使用することに固執する必要があります。これは、Webページをレンダリングする場合、またはそれを使用してjavascriptをハッキングして実行する場合に限ります。

WebBrowserの一般的な拡張についてのコメント

私がウェブブラウザに対して個人的に見つけた最も有用な変更の1つは、ダウンロードフラグを公開することでした。これにより、ウェブブラウザが画像などをダウンロードするかどうかを制御できます。これを行う方法の優れた例は、https ://stackoverflow.com/です。 a / 7738174/184746

于 2012-11-24T18:12:12.927 に答える