2014-01-08 18 views
1

我正在寫測試用例中的if-else條件。但功能不會在其他條件下,它只是尋找如果(條件)。我無法找出問題。如果 - 否則條件對我的測試用例不起作用

用java與硒的webdriver

公共靜態無效afterMenthod()拋出InterruptedException的{

try { 

     if (remoteDriver.findElementByName("Confirmation").isDisplayed()) 
     { 
      if (remoteDriver.findElementByName("Stop").isDisplayed()) 
       { 
        remoteDriver.findElementByName("Stop").click(); 
       } 
      else 
       { 
        remoteDriver.findElementByName("Resume").click(); 
        remoteDriver.findElementByName("Navigate up").click(); 
        remoteDriver.findElementByName("Stop").click(); 
       } 

     } 

     else if (remoteDriver.findElementByName("TRY AGAIN").isDisplayed()) 

      { 
       System.out 
         .println("There is some problem in deposit transaction"); 
       remoteDriver.findElementByName("Navigate up").click(); 
       remoteDriver.findElementByName("Stop").click(); 
       remoteDriver.findElementByName("Stop").click(); 

      } 
     else if (remoteDriver.findElementByName("NEXT").isDisplayed() || remoteDriver.findElementByName("SUBMIT").isDisplayed()) 
     { 
      System.out.println("There is some problem in deposit transaction"); 
      remoteDriver.findElementByName("Navigate up").click(); 
      remoteDriver.findElementByName("Stop").click(); 
     } 

     else { 
      // if(remoteDriver.findElementByName("namaskaar").isDisplayed()) 

      System.out 
        .println("There is some problem in deposit transaction"); 
     } 
    } finally{ 

    GeneralMethods.signout(); 
    System.out.println("Script Over"); 

}} 

它只是尋找 「確認」 元素,如果它沒有找到該測試GET失敗。

+0

檢查,如果'confirmation'顯示或不 – Rugal

+10

調試代碼 –

+0

你有沒有檢查是否「remoteDriver.findElementByName(」確認書「)」不爲空,在這種情況下它會發生一個空指針。 –

回答

1

嘗試檢查元素是否顯示並啓用

WebElement confirmation = remoteDriver.findElementByName("Confirmation"); 

if (confirmation.isDisplayed() && confirmation.isEnabled()) { 
    ... 
} 
else { 
    ... 
} 
+0

它正在進行確認。它適用於任何我首先放置的條件。我關心的是其他部分。它沒有達到其他塊 – Nitesh

+0

如果條件不處理異常,並在我的條件是它引發NoSuchElementFound異常,所以在把if-else條件之前,我需要檢查元素是否存在。 – Nitesh

0

「它只是尋找」確認「元素,如果它沒有發現測試失敗。」 - 這是因爲如果找不到元素,findElementByName將引發異常。這就是爲什麼其他人沒有得到處理。你需要在你的代碼中使用try-catch-finally。搜索任何論壇如何使用它。

+0

我將我的代碼放入try-finally塊中,但仍然沒有路由到else塊。我已經用try-finally更新了我的代碼。 – Nitesh

+0

您錯過了catch塊。當發生異常時,您想要執行的所有步驟都應該放入catch塊中。 – Akbar

+0

我嘗試嘗試抓住,但沒有運氣。 – Nitesh

0

發表您else部分在catch塊。

這樣,如果發生異常,您的else塊將被執行。

它爲我工作。

我的代碼在可捲動屏幕中查找元素並單擊它。

public static void scrollToBeFound(String Value) throws InterruptedException{ 
      try{ 
       driver.findElementByName(Value).click(); 
       Thread.sleep(5000); 
      } 
      catch(Exception e){ 
       try{ 
        driver.swipe(120,420,120,750,1500); 
        Thread.sleep(3000); 
        driver.findElementByName(Value).click(); 
       } 
       catch(Exception ex){ 
        driver.swipe(120,750,120,420,1500); 
        Thread.sleep(3000); 
        driver.findElementByName(Value).click(); 
       } 
      } 
      }