gpt4 book ai didi

java - 防止 Selenium WebDriver 在捕获异常后退出

转载 作者:行者123 更新时间:2023-12-02 04:05:33 25 4
gpt4 key购买 nike

我正在使用 Selenium Web Driver 来填写简单的表单:

private WebDriver driver = new FirefoxDriver();

函数:

public boolean fillDetailsInWeb(JsonElement data,String url){
System.out.println("fill in-"+url);
boolean result = false;
try{
driver.navigate().to(url);

}catch(Exception e){
System.out.println("Error in driver " + e.getMessage().toString());
return result;
}
//web elements
try{
WebElement name_to_input = driver.findElement(By.id("ID1"));
WebElement email_to_input = driver.findElement(By.id("id2"));
WebElement message_to_input = driver.findElement(By.id("ID3"));
}catch(NoSuchElementException MSEE){
MSEE.printStackTrace();
}
result = true;
return result;
}

我希望该过程在捕获 NoSuchElementException 后继续,并且程序转到下一个站点。正确的做法是什么?

最佳答案

如标题所述,如果即使发生意外异常也想继续执行,则需要使用 The Final block 以及 尝试...捕获...<​​ block 。

来自this 链接:

finally block 总是在 try block 退出时执行。这确保即使发生意外异常,finally block 也会被执行。但finally 的用途不仅仅是异常处理——它允许程序员避免清理代码被返回、继续或中断意外绕过。将清理代码放在finally block 中始终是一个很好的做法,即使在预计不会出现异常的情况下也是如此。

所以你的 Try Catch block 和 Final 是:

...
try{
driver.navigate().to(url);

}catch(Exception e){
System.out.println("Error in driver " + e.getMessage().toString());
return result;
}
//web elements
try{
WebElement name_to_input = driver.findElement(By.id("ID1"));
WebElement email_to_input = driver.findElement(By.id("id2"));
WebElement message_to_input = driver.findElement(By.id("ID3"));
}catch(NoSuchElementException MSEE){
MSEE.printStackTrace();

} finally {
return result;
}
...

关于java - 防止 Selenium WebDriver 在捕获异常后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com