HtmlUnit无法识别有效的CSS

时间:2018-01-25 00:28:30

标签: css kotlin htmlunit

所以,我刚刚开始使用HtmlUnit(字面意思就是现在),而且我已经遇到了错误。我有一些简单的代码:

WARNING: CSS error: 'http://htmlunit.sourceforge.net/css/apache-maven-fluido-1.5.min.css' [9:90176] Error in declaration. '*' is not allowed as first char of a property.
Jan 24, 2018 4:14:58 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNING: CSS error: 'http://htmlunit.sourceforge.net/css/apache-maven-fluido-1.5.min.css' [9:91151] Error in declaration. '*' is not allowed as first char of a property.
Jan 24, 2018 4:14:59 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Obsolete content type encountered: 'text/javascript'.
Jan 24, 2018 4:15:00 PM com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError
//continues the above sequence a lot, and then ends with:

SEVERE: runtimeError: message=[An invalid or illegal selector was specified (selector: '*,:x' error: Invalid selector: :x).] sourceName=[http://htmlunit.sourceforge.net/js/apache-maven-fluido-1.5.min.js] line=[25] lineSource=[null] lineOffset=[0]

但是,它会引发一个非常长的错误:

{{1}}

我查看了link provided by the error,它似乎在CSS中包含了很多星号。确切地说是194(包括在评论区域中使用的星号)。我还尝试加载其他网页,似乎它有理解网页的CSS有效的问题。

我做错了什么,或者我应该告诉它忽略CSS? (我不确定这是否可能,但我更喜欢它。)

1 个答案:

答案 0 :(得分:1)

首先关于css警告

  • 这是一个警告
  • 有关此内容的详情,请参阅star hack
  • 如果您仍然认为这是有效的CSS请打开一个CSSParser问题,我会看看

第二:指定了无效或非法的选择器....

如果您使用HtmlUnit测试页面,这通常很常见。背景是许多javascript库(如jQuery使用的sizzle)进行一些检查以确定浏览器支持哪些功能。您看到的输出是其中一项检查的结果。这个尝试弄清楚,如果javascript select方法能够使用特殊类型的css选择器。在javascript代码中有一个关于这个选择器用法的try-catch,如果选择器失败(事实上这在许多浏览器中都会发生),那么这些功能是不可用的,并且lib会回退到其他一些方式来进行选择。在错误日志中看到这一点的原因是HtmlUnit历史记录的一部分。此lib最初是为Web测试而设计的,基于此,lib会在抛出异常时记录每个javascript异常(即使稍后捕获/处理异常)。所以你可以或多或少地忽略这一点;由于这个原因,HtmlUnit不会停止工作。