由于 jquery 中的 JavaScript 问题,HtmlUnit 导致集成测试失败。我试图弄清楚如何在这种情况下禁用 javascript 检查。我知道有 client.getOptions().setThrowExceptionOnScriptError(false) 选项,但不知道如何在这种情况下实现该选项。这是测试:
@Test
public void test() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333");
assertTrue(browser.pageSource().contains("Sears Home Services Platform Admin"));
}
});
}
我收到的错误是:
[error] - com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter - runtimeError: message=[An invalid or illegal selector was specified (selector: ':checked' error: Invalid selector: *:checked).] sourceName=[http://localhost:3333/webjars/jquery/1.11.1/jquery.min.js] line=[2] lineSource=[null] lineOffset=[0]
最佳答案
这个问题的答案Fluentlenium crashes on jquery in play framework建议将 HTMLUNIT
替换为 new HtmlUnitDriver()
这为我解决了这个问题。
你的代码看起来像:
@Test
public void test() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), new HtmlUnitDriver(), new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333");
assertTrue(browser.pageSource().contains("Sears Home Services Platform Admin"));
}
});
}
根据他的说法,这将在您的测试中完全禁用 javascript,因为 HTMLUNIT 包含 javascript 并在 jQuery 源代码中发现错误。
关于javascript - Play框架集成测试中禁用HtmlUnit javascript错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153674/