2014-06-20 56 views
0

我通過webdriver找到元素來測試一個web應用程序,我想知道如果第一個元素沒有找到,那麼我想繼續執行第二個代碼,所以我放置了一個最後,但是用我的代碼,即使在最終放置之後,代碼也會停止執行,並且不會繼續第二步。在哪裏放置最後在java中的try catch塊

請幫忙,謝謝 這裏是我的代碼:

// ---First Step----------------------------------------- 
try { 
    driver.findElement(By.className("label")).isDisplayed(); 
    System.out.println(" label is displayed"); 
} catch (NoSuchElementException e) { 
    System.out.println("label is not displayed"); 
} finally { 
    System.out.println("Go to the next step"); 
} 

driver.findElement(By.className("label")).click(); 

Thread.sleep(3000); 

// ---Second Step------------------------------------------ 
try { 
    driver.findElement(By.linkText("Resumé")).isDisplayed(); 
    System.out.println("Resumé is displayed"); 
} catch (NoSuchElementException e) { 
    System.out.println("Resumé is not displayed"); 
} finally { 
    System.out.println("Go to the next step"); 
} 

driver.findElement(By.linkText("Resumé")).click(); 
+2

你可以請包括你的程序的輸出,所以我們可以看到它有多遠? – clearlyspam23

+0

例如,如果程序沒有找到webelement「label」,它應該顯示消息「label is not displayed」,它將繼續執行第二步。 – user3745193

+1

好的,但它在運行時實際顯示的是什麼?它顯示「標籤不顯示?」它顯示的是什麼?如果沒有,還有什麼? – clearlyspam23

回答

0

在第一步點擊標籤,只有當元素存在。點擊操作在try catch塊之外。因此,移動兩個點擊行動在嘗試

try { 
    driver.findElement(By.className("label")).isDisplayed(); 
    System.out.println(" label is displayed"); 
    driver.findElement(By.className("label")).click(); 
} catch (NoSuchElementException e) { 
    System.out.println("label is not displayed"); 
} **finally { 
    System.out.println("Go to the next step"); 
}** 

Thread.sleep(3000); 

//---Second Step------------------------------------------  
try { 
    driver.findElement(By.linkText("Resumé")).isDisplayed(); 
    System.out.println("Resumé is displayed"); 
    driver.findElement(By.linkText("Resumé")).click(); 
} catch (NoSuchElementException e) { 
    System.out.println("Resumé is not displayed"); 
} **finally { 
    System.out.println("Go to the next step"); 
}** 
+0

謝謝阿布舍克。 – user3745193