如何在HtmlUnitDriver中使用CSS3解析器

时间:2013-01-05 11:30:31

标签: css3 selenium jquery-selectors webdriver htmlunit

例如。 我有一个活动菜单项的选择器:

$("ul#menu li a[href='/']")

其余菜单项的选择器(1):

$("ul#menu li a:not([href='/'])")

但是“:not”出现在CSS3中并且不受HtmlUnitDriver的支持。我试过

  

org.seleniumhq.selenium:selenium-htmlunit-driver:2.28.0

我也尝试了下一个选择器(2)

$("ul#menu li a[href!='/']")

(1)和(2)都可以通过jQuery在Firefox或Google Chrome等真实浏览器中正常运行。 (1)适用于FirefoxDriver,(2)不适用。

我应该使用哪个版本的HtmlUnitDriver来启用CSS3支持?我在哪里可以得到它?

2 个答案:

答案 0 :(得分:1)

似乎HtmlUnit开发人员试图添加CSS3支持但由于某些原因失败并将其还原。 http://sourceforge.net/p/htmlunit/code/7898

因此,在他们完成工作之前,我们不会看到正确的HtmlUnitDriver。

答案 1 :(得分:0)

我有一个想法。尝试使用js代码并以这种方式将其插入jsExecutor: enter image description here

JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = ($("ul a:not([href='/'])")[23]);");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());

希望这适用于你。