我有一段代码包装在try-catch中以捕获异常,但我想重新尝试那段代码,直到它成功为止。我添加了一个基于this post的循环。这就像循环代码一样,但它是一个无限循环。一旦代码成功并移动到下一页,代码仍然循环并最终失败,因为它正在搜索不再可用的定位器,因为页面已经前进到下一页。我的问题是:一旦代码成功,我该如何摆脱循环?
int count = 0;
int maxTries = 1;
while (true)
{
try{
driver.FindElement(By.id("textbox").sendKeys("123");
driver.FindElement(By.id("submit").click();
driver.FindElement(By.id("catalog").click();
if(driver.getTitle().equals("Correct Page"))
{break;
}
}
catch(NoSuchElementException e)
{
if (++count == maxTries) throw e;
}
}
}
driver.FindElement(By.id("part1").click();
答案 0 :(得分:0)
为此目的使用例外可能不是正确的路线。
而不是while(true),尝试while(!driver.getTitle()。equals(“Correct Page”))
然后在循环内,递增计数,将其与maxTries一起检查,并在超过时断开