Я хочу найти электронное письмо в папке «Входящие» с темой письма, для того, чтобы электронная почта попала в почтовый ящик, требуется некоторое время. если электронная почта не найдена в итерации, подождите некоторое время и повторите поиск электронной почты, а когда найденная электронная почта вернет true;
public boolean searchForEmail(String MySubject, String linkAddress, String attachment) {
boolean flag = false;
List<WebElement> unreademeil = driver.findElements(By.xpath(""));
for (int i = 0; i < unreademeil.size(); i++) {
if ((unreademeil.get(i).isDisplayed()) == true) {
System.out.println(unreademeil.get(i).getText());
if (unreademeil.get(i).getText().contains(MySubject)) {
unreademeil.get(i).click();
flag=true;
break;
}
}
}
if (!flag) {
System.out.println("No mail with Subject ::--:: " + MySubject);
while (counter < 40 && !flag) {
sleep(10000);
counter++;
cloop();
}
SoftAssertor.asserTrue(isElementPresent("//*[contains(@text()='" + MySubject + "')]"),
"Failed to search a email with Subject line ::: " + MySubject);
}
return flag;
}
public void cloop(){
searchForEmail(SubjectLine, seeDetailsLink, "xpath");
}
Выше Программа предназначена для поиска писем с темой. Иногда требуется время, чтобы получить электронное письмо. Таким образом, программа продолжает поиск после сна (10000).
Проблема возникает в операторе return, оператор return flag перенаправляется на cloop () в цикле while, даже если условие while не выполнено, т.е. «flag == true»;
благодаря этой программе идет бесконечный цикл. Пожалуйста, помогите