2012-02-24 11 views
1

以下は、ネストされたdivタグの下にあるスパンタグの2つのリストを含むhtmlのスクリーンショットです。スパンリストの両方のセットは同一です。 1つまたは複数のスパンタグの数を取得するにはどうすればよいですか?一番上のdivだけがidを持つことに注意してください。私はjQuery( "#resultsContainer span")の長さに頼ることはできません。これは、コンテナ全体のスパンタグを取得するためです。jQueryを使用してidがないdiv以下のスパンタグの数

enter image description here

=====================

2012年2月24日 - 最終的な答え

long pageCountText = (long)Element.GetLongValueFromJQuery(driver, "$('#resultsContainer .pagination').first().children('span').length"); 

public static long GetLongValueFromJQuery(IWebDriver driver, string jQueryCode) 
{ 
    IJavaScriptExecutor js = driver as IJavaScriptExecutor; 
    return (long)js.ExecuteScript("return " + jQueryCode); 
} 

答えて

2
jQuery("#resultsContainer > .pagination").first().children("span").length 

は、最初のコレクションの数を示します。

+0

WebdriverのJavaScriptExecutorからスクリプトを実行しているので、これを1行に入れておかなければならないので、この点を教えてください。私の質問でそれを言いました。私が ">"を削除するまで、私はあなたの仕事を得ることができませんでした。その後、それは動作するように見えました。だから、私は彼から最初を盗んだので、私はbiziclop +1を与えるでしょう。 ">"がうまくいかない理由は分かりますか?それは私のjQueryのバージョンですか?私は1.5.1を使用しています。 – MacGyver

+0

ここに私が使用したコードは次のとおりです:long pageCountText =(long)Element.GetLongValueFromJQuery(driver、 "return $( '#resultsContainer .pagination'))first()。children( 'span')。 – MacGyver

+0

">"がうまくいかなかった理由を知っている人のコメントをアップホートします。その間に、私はもっと多くの意見を得るためにこれを未回答にしておきます。 – MacGyver

2
var spans = []; 

$('#resultsContainer span').parent() 
// OR $('#resultsContainer .pagination') 

.each(function(){ 
    spans.push({ 
    parent: this, 
    spanCount: $(this).children('span').length 
    }); 
}); 
1
var pages = []; 
$("#resultsContainer .pagination").each(function(index){ 
      pages.push($(this).children("span").length); 
}); 
$("body").append(pages.toString()); 

は、それぞれの長さを取得し、あなたの喜びのために配列に入れます。

+0

+1 ...これは良い情報です!プッシュ機能について知らなかった – MacGyver

関連する問題