簡體   English   中英

如何執行在測試方法中找不到元素的部分之后的代碼?

[英]How to execute code which comes after a section where element is not found in a test method?

假設我正在測試一種檢查頁面上是否所有鏈接都存在的方法。 例如:

@Test
public void testLinks(){
    driver.findElement(By.linkText("link1"));
    driver.findElement(By.linkText("link2"));
    driver.findElement(By.linkText("link3"));
    driver.findElement(By.linkText("link4"));
    driver.findElement(By.linkText("link5"));
}

在上面的代碼中,假設除了link3之外所有鏈接都存在,然后在拋出link3錯誤后測試方法的執行將停止,但是如果我想執行用於檢查link4link5 ,如何使用Java來實現呢?

我認為您的意思是拋出異常。 您可以使用另一種處理異常的方法來逐個測試鏈接。

public void testOne(String link) {
    try {
       driver.findElement(By.linkText(link));
    }
    catch (Exception e) {
       System.out.println(link+" failed to find");
    }
}

public void test() {
    testOne("link1");
    testOne("link2");
    testOne("link3");
    testOne("link4");
    testOne("link5");
}

testOne()方法將捕獲異常並打印失敗的注釋,並且您的測試方法不會受到干擾。

嘗試此操作,您可以使用TestNg報告程序使測試通過或失敗或log4j日志,請嘗試此操作。

sResult = "Pass";

public void testOne(String link) {
    try {
       driver.findElement(By.linkText(link));
    }
    catch (Exception e) {
       System.out.println(link+" failed to find");
       sResult = "Fail";
    }
}

public void test() {
    testOne("link1");
    testOne("link2");
    testOne("link3");
    testOne("link4");
    testOne("link5");
}


if(sResult.equals("Pass")){
            System.out.println("Pass");
        }else{
            System.out.println("Fail");

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM