2016-10-25 14 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

forの外側にあるromElemを初期化し、それを使用してフラグを切り替えます。最大rowElemenに達していて、探しているものが見つからなかった場合、値がfalseであると仮定することは安全です。

また、その目的は何ですか?あなたはそれを完全に削除することができますが、しばらくの間、そしてforを混ぜるのは悪い考えです。私はこの場合、そうしている点は見ていない。

関連する問題