玩 2.5 和 Fluentlenium:如何关闭 HtmlUnit 警告
Play 2.5 and Fluentlenium: how to turn HtmlUnit warnings off
我正在尝试使用 PlayFramework 2.5 的 WithBrowser
class 编写 Selenium 测试。
像这样:
public class BrowserFunctionalTest extends WithBrowser {
@Test
public void runInBrowser() {
browser.goTo("/");
assertNotNull(browser.$("title").getText());
}
}
但是,我希望能够为至少 CSS 个错误设置自定义错误处理程序,因为它们会向我的控制台发送垃圾邮件。而且由于它们来自 boostrap,我无法摆脱它们。
我试过这样设置记录器的日志级别:
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 文档告诉我重写 getDefaultDriver
方法,但这似乎不适用于此处。而且我无法直接接触 WebClient,因为该字段没有 getter。
使用 WithBrowser
助手 class 时,您可以覆盖 provideBrowser
以自定义 TestBrowser
的配置方式。还有一些其他细节,但下面的代码几乎展示了如何做:
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());
}
}
现在,由于您已经可以访问 WebClient
,您可以按照此讨论中的说明进行操作:
Turning HtmlUnit Warnings off
我正在尝试使用 PlayFramework 2.5 的 WithBrowser
class 编写 Selenium 测试。
像这样:
public class BrowserFunctionalTest extends WithBrowser {
@Test
public void runInBrowser() {
browser.goTo("/");
assertNotNull(browser.$("title").getText());
}
}
但是,我希望能够为至少 CSS 个错误设置自定义错误处理程序,因为它们会向我的控制台发送垃圾邮件。而且由于它们来自 boostrap,我无法摆脱它们。
我试过这样设置记录器的日志级别:
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 文档告诉我重写 getDefaultDriver
方法,但这似乎不适用于此处。而且我无法直接接触 WebClient,因为该字段没有 getter。
使用 WithBrowser
助手 class 时,您可以覆盖 provideBrowser
以自定义 TestBrowser
的配置方式。还有一些其他细节,但下面的代码几乎展示了如何做:
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());
}
}
现在,由于您已经可以访问 WebClient
,您可以按照此讨论中的说明进行操作:
Turning HtmlUnit Warnings off