我在下面有一个selenium java函数,在这里我从excel读取文件。
需求-如果我的代码由于页面上的错误消息而导致特定行失败,那么我的代码应该转到下一行,但是迭代不会停止。
for (int i = 0; i <rowcount-2; i++) {
wait.ignoring(StaleElementReferenceException.class).until(ExpectedConditions.visibilityOfElementLocated(By
.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTsditasksId::icon")));
WebElement task = driver
.findElement(By
.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTsditasksId::icon"));
WebElement menu;
boolean menuVisible = false;
while (!menuVisible) {
task.click();
wait.ignoring(StaleElementReferenceException.class).until(ExpectedConditions.visibilityOfElementLocated(By
.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTRaT:0:RAtl1")));
menu = driver
.findElement(By
.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTRaT:0:RAtl1"));
if (menu.isDisplayed()) {
menuVisible = true;
}
}
wait.ignoring(StaleElementReferenceException.class).until(ExpectedConditions.visibilityOfElementLocated(By
.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTRaT:0:RAtl1")));
driver.findElement(
By.id("_FOpt1:_FOr1:0:_FOSritemNode_procurement_supplier_qualification:0:_FOTRaT:0:RAtl1"))
.click();
}如果它在循环中失败,它不应该停止执行,如果i=1失败,它不应该移动到下一个迭代值,那么它应该移动到i=2。
发布于 2020-06-08 07:31:17
使用try catch块控制异常情况。
例如:
for (...){
try {
//read excel
//if failed then continue
} catch (FailedToReadException e) {
continue;
}
}https://stackoverflow.com/questions/62256159
复制相似问题