2016-10-25 4 views
-3

Ich brauche Hilfe mit diesem Szenario, wo ich eine Zeichenfolge aus einer Seitentabelle finden müssen, in der jede Seite 50 Elemente enthält. Mein Code unten funktioniert gut, nur Problem ist, dass, wenn es die Daten nicht finden kann meine while-Schleife manchmal unbegrenzt weiterlaufen und nicht fehlschlägt, aber manchmal tut es! Was kann ich tun, damit es nach dem Erreichen einer Anzahl von Schleifen immer einen Fehler zurückgibt?Fehlerbehandlung für eine Weile Schleife

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

Hinweis: Sie möchten, dass wir unsere Zeit verbringen, um Ihnen zu helfen; also verbringst du bitte die paar Minuten, die es braucht, um deine Codeeingabe korrekt zu formatieren/einzurücken; anstatt uns eine solche Sauerei zu verpassen. Würden Sie es wagen, einen solchen Code einem Peer zu zeigen, wenn Sie um Hilfe bitten? Aber bei uns ist es in Ordnung? – GhostCat

Antwort

1

Initialisieren das romElem außerhalb der for, und dann Ihre Fahne wechseln verwenden. Wenn Sie Ihre maximale rowElemen erreicht haben und Sie nicht gefunden haben, was Sie gesucht haben, ist es sicher, dann anzunehmen, dass der Wert falsch ist.

Auch was ist der Zweck der Weile? Sie könnten es komplett entfernen, es ist normalerweise eine schlechte Idee, eine Weile und ein für zu mischen. In diesem Fall sehe ich keinen Sinn darin.

Verwandte Themen