Java 如何退出此循环?
我是个初学者,不明白为什么这个循环不会中断。 我需要删除一些用户,对于每个用户,如果我确定要删除该用户,系统会提示我。 所以我做了以下循环:Java 如何退出此循环?,java,selenium-webdriver,Java,Selenium Webdriver,我是个初学者,不明白为什么这个循环不会中断。 我需要删除一些用户,对于每个用户,如果我确定要删除该用户,系统会提示我。 所以我做了以下循环: while (!alert && delete_button_is_present) { clickDeleteBtn; if(alert) { driver.switchTo().alert().accept(); } else if(delete_button_is_not_p
while (!alert && delete_button_is_present)
{
clickDeleteBtn;
if(alert)
{
driver.switchTo().alert().accept();
}
else if(delete_button_is_not_present)
{
break;
}
}
问题是,删除所有用户后,删除按钮不再存在,测试仍在寻找该按钮。让我们浏览一下您的代码
while (!alert && delete_button_is_present)
{
clickDeleteBtn;
if(alert)
{
driver.switchTo().alert().accept();
else if(delete_button_is_not_present)
{
break;
}
}
您的意思是,只要没有警报,并且屏幕上有一个删除按钮,您就希望继续此循环。首先,单击删除按钮。如果没有关于此按钮的任何信息,我将假定它与循环无关。你说如果(警报),但如果有警报,你首先不会在循环中…因此循环重复确保删除按钮存在,或者至少可以在clickDeleteButton或driver.switchTo().alert().accept()中修改,否则该条件永远无法满足
不过,我对您的代码有一些问题,如果它们得到清理,可能会有所帮助:您有delete_button_存在,delete_button_不存在。你可以扔掉不在场的东西,直接使用!删除按钮存在。为什么有一个else-if没有与if-inside-if(警报)配对?如果您的意思是If(警报),那么If(!delete_button_present),那么您只需要一个If语句。否则,如果在if(警报)之外,您需要该else。没有任何内容正在更新删除按钮。\u在您的循环中存在。
if
块的if
块是否在您的代码中?该代码不编译该循环显然有效(单击x按钮并关闭它后面的提示,然后转到下一个用户)直到删除按钮不再出现在页面上,之后我得到NoSuchElementException:无法找到元素“deletebutton”。我需要的是当删除按钮不再出现在页面上时停止我的循环。如果听起来像是在循环已经开始后删除了删除按钮。我们需要查看代码的其余部分来修复逻辑。或者,您可以只放置clickDeleteBtn;在if语句中。