2016-06-14 9 views
0

Ich versuche, Selenium Tests schreiben mit WithBrowser Klasse des PlayFramework 2.5.Play 2.5 und Fluentlenium: Wie HtmlUnit Warnungen deaktivieren

Etwas wie folgt aus:

public class BrowserFunctionalTest extends WithBrowser { 

    @Test 
    public void runInBrowser() { 
     browser.goTo("/"); 
     assertNotNull(browser.$("title").getText()); 
    } 
} 

Allerdings möchte ich mindestens CSS Fehler setzen Handlers individuelle Fehler zu können, da sie meine Konsole Spam. Und da sie vom Boostrap kommen, kann ich sie nicht loswerden.

Ich versuchte, die loglevel des Loggers wie folgt festgelegt:

java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.SEVERE);  
System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog", "fatal"); 

Fluentlenium Dokumentation mir die getDefaultDriver Methode außer Kraft zu setzen erzählt, aber das scheint hier nicht anwendbar. Und ich kann den WebClient nicht direkt in die Hände bekommen, da es kein Getting für das Feld gibt.

Antwort

2

Bei Verwendung der Hilfsklasse WithBrowser können Sie provideBrowser überschreiben, um anzupassen, wie die TestBrowser konfiguriert ist. Es gibt einige andere Details, aber der Code unten ziemlich zeigt, wie es geht:

import static org.junit.Assert.*; 

import com.gargoylesoftware.htmlunit.WebClient; 
import org.junit.Test; 
import org.openqa.selenium.htmlunit.HtmlUnitDriver; 
import play.test.Helpers; 
import play.test.TestBrowser; 
import play.test.WithBrowser; 

public class BrowserFunctionalTest extends WithBrowser { 

    // Just to make the WebClient visible at the test. Of course, this 
    // could be an independent class to be reused by other tests or you 
    // can create your own class that extends WithBrowser and hide all 
    // the details from your tests. 
    public static class CustomHtmlUnitDriver extends HtmlUnitDriver { 
     @Override 
     public WebClient getWebClient() { 
      return super.getWebClient(); 
     } 
    } 

    @Override 
    protected TestBrowser provideBrowser(int port) { 
     // Here you need to create the TestBrowser for the class above. 
     TestBrowser browser = Helpers.testBrowser(CustomHtmlUnitDriver.class, port); 
     CustomHtmlUnitDriver driver = (CustomHtmlUnitDriver)browser.getDriver(); 
     WebClient client = driver.getWebClient(); 

     // do whatever you want with the WebClient 

     return browser; 
    } 

    @Test 
    public void runInBrowser() { 
     browser.goTo("/"); 
     assertNotNull(browser.$("title").getText()); 
    } 
} 

Jetzt, da Sie bereits Zugriff auf die WebClient haben, können Sie die Anweisungen aus dieser Diskussion folgen:

Turning HtmlUnit Warnings off

+0

Vielen Dank für diese Antwort! –