1

我正在使用 Selenium-web 驱动程序自动化 Web 应用程序。一旦脚本在任何时候中断,我想停止执行代码而不是继续下一个方法,这样我就可以知道自动化在哪里中断。谁能帮助我,我该怎么做。

这是 catch 块的片段(即我现在使用的异常)

try {
   //code
} 
catch(Exception e){
   System.out.println("Exception occurred *** " +e.getMessage());
}
4

3 回答 3

2

如果我理解您的要求,我会将其放在 catch 块中以帮助您跟踪问题。

catch(Exception e)
{
   e.printStackTrace();
   System.exit(1)
}

或者,您可以在每个 catch 块中放置一个打印语句来标识哪个块失败。

IE。

try{
//make a cake
}
catch(CakeException e)
{
   System.out.println("Failed at cake baking);
}

try{
//make a salad
}
catch(LettuceException e)
{
   System.out.println("Failed at lettuce chopping);
}
于 2013-08-28T18:09:12.583 回答
1

好吧,测试在设计上应该是独立的,所以一个的失败不应该影响其他的。如果您在第一个失败的测试中停止执行,那么您怎么知道代码中还有多少错误?

这是一种解释为什么 testng 不包含开箱即用的所需功能的一般概念。但是,您仍然可以利用 testng 提供的测试依赖机制:

@Test
public void serverStartedOk() {}

@Test(dependsOnMethods = { "serverStartedOk" })
public void method1() {}

因此,您需要以这种方式链接您的方法,以确保执行在第一次失败时中断。

于 2013-08-28T18:11:24.717 回答
0

那是我控制所有例外的方式。

创建对所有类可见的方法

protected void exeption(String variable){
  driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    System.out.println(" ");
    System.out.println("stop test ____ something your code - exeption ______");
    System.out.println(" ");
    System.out.println("Check Variables:  " + variable);
    System.out.println("____________________________________________");
    driver.findElement(By.xpath("//ooppss"));
}

private void testName() {
String variable = "something";
        if(1!=2){
      exeption(variable);
    }
}
于 2016-03-18T22:37:20.193 回答