2016-07-08 5 views
1

Ich habe zwei Klassen, eine, die die Methoden zum Klicken auf Schaltflächen etc. ausgeführt wird. Auf der Seite gibt es eine Schaltfläche, die deaktiviert ist und ich habe ein WebDriverWait warten auf es wieder aktiviert werden, indem Sie das überprüfen Das Attribut "disabled" wurde aus dem html-Element entfernt. Wenn ich den Test jedoch ausführe, erhalte ich eine NullPointerException. Ich denke, ich weiß, woher es kommt, aber ich habe ein Problem damit herumzuarbeiten.NullPointerException using WebDriverWait Boolean

Dies ist die Methode, die die Aktionen ausführen zu bekommen läuft:

public void methodThatRuns(WebDriver driver) throws InterruptedException { 
    properties.inputTxt(driver, "100"); 
    sundries.waitEnabledButton(driver, properties.nextButton(driver)); 
    properties.nextButton(driver).click(); 
} 

Dies ist die waitEnabledButton Methode von einer anderen Klasse, die es zu warten, ruft:

public void waitEnabledButton(WebDriver driver, final WebElement btn) throws NullPointerException { 
    WebDriverWait wait = new WebDriverWait(driver, 10); 
    System.out.println("Starting the wait"); 
    try { 
     wait.until(new ExpectedCondition<Boolean>(){ 
      public Boolean apply(WebDriver driver) { 
       final String attribute = btn.getAttribute("disabled"); 
       if (attribute.equals(null)) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
     }); 
    } catch (StaleElementReferenceException e) { 
     System.out.println("The disabled attribute was destroyed successfully and the script can continue."); //using this as the attribute gets destroyed when the button is enabled which throws a staleElement exception 
    } 
    System.out.println("Wait is over"); 
} 

auf diese Hilfe würde sehr geschätzt werden!

Antwort

6

Wenn das Attribut null ist, wird der Aufruf von .equals zu NPE führen. Versuchen Sie mit Attribut == null.

+2

Das hat mein Problem behoben! So einfach und doch so brilliant! Dank dafür! – Moser

Verwandte Themen