1

嗨,任何人都可以告诉如何使用 HTMLUNIT 驱动程序而不是 Firefox 驱动程序运行这个示例程序。下面的代码已成功运行 Firefox 驱动程序,但没有成功运行 htmlunit 驱动程序给出

org.openqa.selenium.NoSuchElementException:无法使用.//*[contains(concat(' ',normalize-space(@class),' '),' gssb_e ')]-EXCEPTION 定位节点。

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class GoogleSuggest
{
    public static void main(String[] args) throws Exception
    {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com/webhp?complete=1&hl=en");

        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Cheese");

        long end = System.currentTimeMillis() + 50000;
        while (System.currentTimeMillis() < end)
        {
            WebElement resultsDiv = driver.findElement(By.className("gssb_e"));
            if (resultsDiv.isDisplayed())
            {
                break;
            }
        }

        List<WebElement> allSuggestions =
        driver.findElements(By.xpath("//td[@class='gssb_a gbqfsf']"));
        for (WebElement suggestion : allSuggestions)
        {
            System.out.println(suggestion.getText());
        }
    }
}

请任何人告诉我如何使用 HTMLUNIT 驱动程序 n IMA 非常刚开始并解释我的原因,如果有人发布使用 HTMLUNIT 驱动程序操作的相同代码,我会很高兴,还请告诉我如何克服 DEFAULTCSSERROR 时使用 HTMLUNIT 驱动程序,这又不是 Firefox 驱动程序的问题。

我的主要目的是在不调用浏览器的情况下在后台运行上述过程,从而使所有东西都不可见。

任何人请在这方面帮助我。

4

2 回答 2

1

在 HtmlUnit Driver 中,它只会寻找小写的标签和属性。

示例:HTML

输入类型=“文本”名称=“示例”>

输入类型=“文本”名称=“其他”>

// 网络驱动程序代码

driver.findElements(By.xpath("//input"));

对于 HtlmUNIt 案例:它只会找到一个元素(name="example")

对于 firefoxDriver 案例 = 它会找到 2 个元素

希望它会帮助你调试代码

于 2013-06-18T20:07:58.603 回答
0

HtmlUnit 驱动程序 <> FirefoxDriver

"If you test javascript using HtmlUnit the results 
      may differ significantly from those browsers"

看看这里

于 2013-06-18T09:39:16.767 回答