2009-07-26 5 views
2

私は、その内容をテストまたはアサートするために.netを使ってhtmlを解析することを検討しています。.net/CのためのHtmlパーサーとオブジェクトモデル#

のHTMLDocument docの=のgetDocument( "一部のHTML")、すなわち リストフォーム= doc.Forms() リンクリンク= doc.GetLinkByText( "新規顧客")

アイデアは、人々が書き込むことができるようにすることですそれらがどのようにwebrat(ruby)で行うのと同様のC#でのテストです。

私はHTMLの敏捷性パック、sgmlreaderのなどを見てきましたが、誰がオブジェクトを作成した

を "保存" をクリック "名前"、 "ミック" fills_in

訪問( '\') すなわちモデル、つまり、フォーム、ボタンなどのhtml要素を表すクラスのセット?

乾杯。

+2

Html Agility Packは目的に適しているようですが、XPathを使用してXMLをクエリする必要があります。 –

+0

uは実際に質問を読んだか??? – mickdelaney

+0

John Saunders氏は、Html Agility Packに代わるものを望んでいると私に指摘しましたが、目的には非常に適しているようですが、その点を指摘したいと思いました。 –

答えて

0

私が知る限り、.NETのHTML DOMに最も近いのはHTML DOMです。

WindowsフォームWebブラウザーコントロールを使用してHTMLで読み込んだ後、外部からDOMにアクセスできます。

こちらは、.NETです。 VB.NETで動作するコードはすべてC#で動作します。

+0

私はむしろUIコントロールのホスティングを開始したいと思いますが、UIコントロールの通常のスレッディング問題に遭遇し、パフォーマンスが低下します。私はasp.net mvcページのテストにこれを使用していて、セレンなどは避けています。ブラウザのオーバーヘッドが原因です。 何が理想的なのかは、HtmlUnit(javaベース)のようなものでしょう。私はそれをモンスターとして移植する時間があれば分かりませんが、それはまたjavascriptをサポートしていますが、私のアプリをテストする必要はありません(つまり目立たない)。 – mickdelaney

+0

HmlUnitから: 最終WebClient webClient = new WebClient(); 最終的なHtmlページpage = webClient.getPage( "http://htmlunit.sourceforge.net"); 最終的なHtmlDivision div = page.getHtmlElementById( "some_div_id"); 最終的なHtmlAnchorアンカー= page.getAnchorByName( "アンカー名"); http://htmlunit.sourceforge.net/ – mickdelaney

+0

コメントに書式設定はありませんか? – mickdelaney

0

あなたは2つの主要なオプションがあります。

  1. はuのためのHTMLを解析しますいくつかのブラウザエンジン(すなわち、インターネットエクスプローラ)を使用して、uは生成されたDOMにアクセスできるようになりますが。このオプションは、ブラウザエンジンで、いくつかの相互運用をhvaeするのuが必要になります(つまりの場合には、それは簡単なCOMです)

  2. HtmlAgilityPack

+1

-1:1。それは私が15分早く答えたものです。 2.質問を読んでください。彼はHtmlAgilityPackについて知っていて、それを望んでいません。 –

+0

それが正しいです。彼の最後のセクションを逃した。 – yosig81

1

Hereのようないくつかの軽量パーサはHTMLの構文解析のための良いライブラリです使用HtmlButton、HtmlInputなどのオブジェクトは作成されませんが、HTML DOMを使用したくない場合は、開始して自分で作成するのがよい点です

0

HTMLユニットテストをしようとしているように聞こえます。あなたはセレンを見たことがありますか?それはC#ライブラリを持っていて、C#でHTML単体テストを記述し、要素が存在し、それらが正しい値を持ち、リンクをクリックしていると主張することもできます。 JavaScript/AJAXサイトでも動作します。

+0

それは私が望むもののために遅すぎる。基本的には私の受け入れテストの大半はwebratを使用しています。そのメモリブラウザ(基本的にhtmlパーサ)は非常に速いので、スモークテストのためにwatir/seleniumなどを使うことができますが、v slow iすべてのためにそれを使用したくない。 – mickdelaney

0

HTML用のパーサーは、HTQL COMです。 HTQLクエリを使用してHTMLコンテンツを取得できます。

関連する問題