2016-10-25 2 views
-3

Мне нужна помощь в этом сценарии, где мне нужно найти строку из таблицы разбиения на страницы, в которой каждая страница содержит 50 элементов. Мой код ниже работает нормально, только проблема в том, что когда он не может найти данные, мой цикл while иногда продолжает работать бесконечно и не терпит неудачу, но иногда это происходит! Что я могу сделать, чтобы он всегда возвращал ошибку после достижения нескольких циклов?Обработка ошибок для цикла while

public int inboxLocateLoan(String expName, String name) throws Throwable { 
    //Locate Loan element in SharePoint table 
    report.setFailedResult("Loan element is not found"); 
    int loanRow; 
    try { 
    boolean loansearch = true; 
    while (loansearch) { 
    List <WebElement> rowElem = getWebElements(getAEDriver(), "xpath", sRow); 
    for (int i = 1; i <= rowElem.size(); i++) { 
    String actualLoanName = driver.findElement(By.xpath("//*[@id='onetidDoclibViewTbl0']/tbody[2]/tr[" + i + "]/td[3]")).getText(); 

    //  String actualLoanNumber = driver.findElement(By.xpath("//*[@id='onetidDoclibViewTbl0']/tbody[2]/tr["+i+"]/td[5]")).getText(); 
    loanRow = i; 
    if (actualLoanName.equals(expName)) { 
     loansearch = false; 
     return loanRow; 
    } 
    if (actualLoanName.equals(name)) { 

     click(getAEDriver(), "xpath", "//*[@class='ms-pivotControl-surfacedOpt-selected']", "Refresh"); 


     loansearch = true; 
    } else { 
     if (i == 50) { 
     click(getAEDriver(), "xpath", "//*[@id='pagingWPQ2next']/a", "Next Page"); 
     } else { 
     loansearch = true; 
     } 
    } 
    } 
    } 
    } 
+2

Подсказка: вы хотите, чтобы мы провели время, чтобы помочь вам; поэтому вы можете потратить несколько минут на правильное форматирование/отступы ввода кода; вместо того, чтобы сбросить на нас такой ** беспорядок **. Не могли бы вы осмелиться показать такой код партнеру при обращении за помощью? Но с нами, все в порядке? – GhostCat

ответ

1

Инициализировать romElem вне for, а затем использовать его, чтобы переключить свой флаг. Если вы достигли максимума rowElemen и вы не нашли то, что искали, тогда можно предположить, что значение будет ложным.

Также, какова цель времени? вы можете удалить его полностью, обычно это плохая идея, чтобы смешать время и. В этом случае я не вижу смысла в этом.

Смежные вопросы