2016-04-19 3 views
0

3つのテキストボックスに入力を提供する必要があります。 2つのテキストボックスでは、値は静的ですが、値は3番目の値で変更されます。テキストボックスに入力されたこの入力に基づいて、検索ボタンをクリックすると、結果が生成されます。 Textbox1:2、Textbox2:3、Textbox3:91、検索ボタンをクリックします。ページが数秒間リフレッシュされ、&出力が生成されます。合計数:13.今度はagainTextbox1:2、Textbox2:3、Textbox3:92、Searchボタンをクリックします。ページは数秒間リフレッシュされます&出力が生成されました。合計カウント:17.出力はテキストボックス3で提供される最初の入力からフェッチされますが、出力はテキストボックス3の入力に基づいて動的に変更する必要があります

しかし、以下のコードに従って、出力は13です。 私にコードの問題を教えてください。私はそれを修正することができません。

if (myFixedNumbers[0]==91){ 
driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[0])); 
driver.findElement(By.id("btnSearch")).click(); 
// use it just before the sendkeys code like this 
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id='dvCount']/span[2]"))); 
String text1 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText(); 
System.out.println(text1); 

} 

if (myFixedNumbers[1]==92){ 
driver.findElement(By.id("txtPortal")).clear(); 
driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[1])); 
driver.findElement(By.id("btnSearch")).click(); 
// use it just before the sendkeys code like this 
//wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id='dvCount']/span[2]"))); 
String text2 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText(); 
System.out.println(text2); 

} 

答えて

0

第2のifブロックでは、待機コードがコメントされています。このため、コードは、ページがロードされるまで待機せずにボックスから値を取得しようとします。したがって、wait文のコメントを外して値を取得してみてください。

+0

@ Karthik- My Bad。間違ってコメントしました。しかしそれは働かない。 – Roy

+0

@Roy - 画面上に「合計数:17」または「合計数:13」が表示されていることを明確にしてください。以前の価値観を観察しているなら、それは私たちが見るべき問題ですが、あなたが後で得ているのであれば、論理には何らかの問題があります。あなたはそれを解決した –

+0

を明確にしていただけますか?あなたの助けてくれてありがとう – Roy

0

こんにちは、それは私が待機コード.ITは現在正常に動作しているのThread.sleepを挿入し、削除した

if (myFixedNumbers[0] == 91) { 
      driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[0])); 
      driver.findElement(By.id("btnSearch")).click(); 
      // use it just before the sendkeys code like this 
      wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='dvCount']/span[2]"))); 
      String text1 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText(); 
      System.out.println("Output 1 : " + text1); 
     } 
     if (myFixedNumbers[1] == 92) { 
      Thread.sleep(1000); 
      driver.findElement(By.id("txtPortal")).clear(); 
      driver.findElement(By.id("txtPortal")).sendKeys(Integer.toString(myFixedNumbers[1])); 
      driver.findElement(By.id("btnSearch")).click(); 
      // use it just before the sendkeys code like this 
      wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='dvCount']/span[2]"))); 
      String text2 = driver.findElement(By.xpath("//*[@id='dvCount']/span[2]")).getText(); 
      System.out.println("Output 2 : " + text2); 
     } 
+0

それは動作していない、同じ値が再びフェッチされています。最初の反復からフェッチされた値は、2番目の反復で反復されている間に再び表示されます。 – Roy

+0

ソースコードのスクリーンショットを1つ前に共有すると、1つ前のものと違う場合があります –

0

に動作します、これを試してみてください。

関連する問題