2009-12-12 3 views
5

私はアプリケーションをテストするためにSeleniumを使用しています。素晴らしいテストは、すべてのDOM操作の後、私はDOMを検証することでしょう。これを行うには良い方法がありますか?Selenium使用時のDOM操作の検証

明白な方法があります。

  • は、いくつかの組み込みSeleniumの機能を使用しています。 1つはありますか?
  • 操作後にDOMのHTMLを取得し、ローカルバリデーターを使用します。しかし、現在のDOMのHTMLをSeleniumから取得する方法はわかりません。
  • テスト中またはセレニウムを通してJSファイルを追加することで、何とかjavascriptを使うことができました。しかし、私はこれについてどうやって行くのか分かりません。思考?

答えて

4

Seleniumを使用してこれを行うための組み込みプロセスはありません。 WebDriver上に構築されたオープンソースプロジェクトがありますが、WebDriverはSelenium 2となり、レイアウトテストを行うことができます。

プロジェクトはhttp://code.google.com/p/fighting-layout-bugs/で、チューリッヒのGTAC 2009で初めて示されました。このコードでは、W3CとjQueryを使用してDOMの有効性を確認しています。話のビデオとそこにあるコードを見てください。

EDIT:W3Cの検証をsampablokuperのおかげでcode.google.com/p/w3c-markup-validation-filter/

+0

これは非常にクールなデザインのプロジェクトですが、レイアウトテストはHTMLの妥当性をテストすることとはまったく異なります。 – sampablokuper

+0

フレームワークは有効です。 exAmpleを見るには、そのサイトのビデオを見てください。検証する方法に応じて赤または緑のページを作成して、その色を確認するだけです – AutomatedTester

+0

True、vidには言及していますが、そのコードはMichael Tammの他のプロジェクトのhttp: /code.google。com/p/w3c-markup-validation-filter /私はまだ私のシステム上で実行しているコードを取得することはできませんでした(私はJavaに頻繁に触れないので、少し遅くなります)が、私はそうすることを楽しみにしています。乾杯:) – sampablokuper

1

である

私は同じ前面に熟考してきました。これまでのところ私の進歩があります。

JavaScript属性document.documentElement.outerHTMLは、一部のブラウザでアクセスできます。 SafariとChromeはサポートしていますが、Firefoxでは使用できません。これはDOM操作の結果を表示しますが、ページの完全なソースコードを提供するわけではありません。 DOM操作が実行された後にdocument.documentElement.outerHTMLの値を格納するJavaScriptを挿入すると、W3C Validatorの「直接入力」テキストエリアにその値を入力して送信する必要があります。有効な(X)HTML文書にするには、値を適切に前に付けて追加する必要があります。私はこれらすべてのステップをまだSeleniumから手に入れることはできませんでした。

URLに「view-source:」を付けると(完了時にはhere)、いくつかのブラウザで動作します。 Firefox、Chromeではサポートされますが、Safariではサポートされません。 DOM操作の結果は表示されません。しかし、私はSelenium IDEに "view-source:"で始まるアドレスを開くようには思えません。それは常に前方スラッシュを前に付けており、私はそれを避ける方法がわかりません。

私は人々が試した他のアプローチと、彼らが成功したかどうかを知ることに興味があります。

0

は、それはあなたのJavascriptによって操作された全体の現在のDOMのHTMLを与える

String html = selenium.getEval("window.document.body.innerHTML"); 

を試してみてください。

関連する問題