2011-10-10 9 views
7

私は最新のバージョンのSeleniumとchromedriverを使ってZKアプリケーションをテストしています。Selenium Java 2.8で現在のDOMを取得するにはどうすればよいですか?

テスト中、私は必要な要素を見つけるのを助けるためにDOM(またはその一部)をダンプしたいと思います。テストを維持しなければならない人にも役立ちます。

メソッドWebDriver.getPageSource()は有望ですが、すべてのJavaScriptコードを実行した後の結果ではなく、サーバーから送信されたHTMLのみを返します。

JavaScriptコードが実行されました。私はgetPageSource()の出力で見ることができないIDによる要素を見つけることができます。だから私はWebElement.getText()を試しましたが、これは要素のテキストであり、要素自体や属性ではありません。

DOMを取得することはまったく可能ですか、ここでキーホール手術を行う必要がありますか?

答えて

1

私は実際に同じ質問を持っているが、私はそれを行うに見つけた唯一の方法はExecuteScriptです:

/// <summary> 
     /// Gets the parentElement/Node of a particular element 
     /// </summary> 
     /// <param name="driver"></param> 
     /// <param name="element"></param> 
     /// <returns></returns> 
     public static IWebElement GetElementParent(IWebDriver driver,IWebElement element) 
     { 
      return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element); 
     } 

ことでは、私は本当に知らない機能をサポートしてBy.DOM doesntの理由.. 。私は複数のブラウザなどのウェブドライバの必要性のためにそれを疑う。

+0

ページにはjQueryが含まれているので、私は '$(arguments [0])。html()'を実行して、 : - / –

関連する問題