我正在使用Selenium-web驱动程序自动化Web应用程序。一旦脚本在任何时候断开,我想停止执行代码而不是继续下一个方法,这样我就可以知道自动化在哪里破坏了。任何人都可以帮助我,我该怎么做。
这是catch块的片段(即我现在正在使用的例外)
try {
//code
}
catch(Exception e){
System.out.println("Exception occurred *** " +e.getMessage());
}
答案 0 :(得分:1)
如果我理解你的要求,我会把它放在catch块中以帮助你追踪问题。
catch(Exception e)
{
e.printStackTrace();
System.exit(1)
}
或者您也可以在每个catch块中放置一个print语句来标识哪个块失败。
即
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);
}
答案 1 :(得分:0)
嗯,测试应该是设计独立的,所以测试的失败不应该影响其他测试。如果您在第一次失败的测试中停止执行,那么您如何知道代码中还有多少错误?
这是一个大致的想法,解释了为什么testng不包含开箱即用的所需功能。但是,您仍然可以获得testng提供的测试依赖机制的优势:
@Test
public void serverStartedOk() {}
@Test(dependsOnMethods = { "serverStartedOk" })
public void method1() {}
因此,您需要以这种方式链接您的方法,以确保在第一次失败时执行被破坏。
答案 2 :(得分: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);
}
}