2016-09-28 6 views
4

GoTopクラスのdivをスキップして、親クラスのdivの数を数え続けます。セレンのwebdriverを使用して1つのdivをスキップした後にDIVSをカウントし続ける

<div class="parent"> 
     <div> 
     <div> 
     <div> 
     <div> 
     <div> 
     <div class="GoTop"> 
     <div> 
     some more div's ...... 
    </div> 

私は次のことを試してみましたが、私は取得していますすべてが5通りのサイズで、

size = driver.findElements(By.xpath("//div[@class='parent']/div [not(contains(@class,'GoTop'))]")).size(); 

答えて

0

あなたの試したコードを助けてくださいしているが、正しく見える、私はあなたがたdiv要素の存在まで待機するWebDriverWaitを使用してみてくださいすべきだと思います試してロケータと。

私はあなたが以下のように同じ達成するためにBy.cssSelector()を使用してみてくださいお勧めします: - 編集

WebDriverWait wait = WebDriverWait(driver, 10); 
int size = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("div.parent > div:not(.GoTop)"))).size(); 

: - あなたはまだ総存在よりも少ない要素を取得している場合、あなたは待ってExpectedCinditions.numberOfElementsToBeMoreThanを使用して試すことができます -

+0

または、このxpathを代わりに使用してください。// div [@ class = 'parent']/div [not(@ class = 'GoTop ')] '。 – testerjoe2

+0

すべての事業部がいつロードされたかはどのようにわかりますか? – testerjoe2

+1

@ testerjoe2これらのdivがajaxを介してロードされている場合、ajaxが他の方法を完了するのを待つ場合、ハードコード待ちを実装する以外はすべてのdivをロードするかどうかを直接知る方法はありません。ありがとう –

関連する問題