Замена драйвера firefox на драйвер htmlunit

Привет, кто-нибудь может рассказать, как запустить этот пример программы с помощью ДРАЙВЕРА 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, и я ОЧЕНЬ ТОЛЬКО НАЧИНАЮЩИЙ, и даже объясните мне причину, и я был бы рад, если кто-нибудь опубликует тот же код, управляемый с помощью драйвера HTMLUNIT, а также скажите мне, как преодолеть DEFAULTCSSERROR, когда используя драйвер HTMLUNIT, который снова не был проблемой с драйвером Firefox.

Мое главное намерение - запустить вышеуказанный процесс в задней части без вызова браузера, делающего все невидимым.

Любой, пожалуйста, помогите мне в этом аспекте.


person user2341870    schedule 17.06.2013    source источник
comment
Ваше сообщение об ошибке даже не соответствует коду, который вы используете. Нет, где в вашем коде вообще вы используете .//*[contains(concat(' ',normalize-space(@class),' '),' gssb_e ')] ... поэтому, пожалуйста, укажите свой фактический код в вопросе и раскройте, что это за DEFAULTCSSERROR ты говоришь? Когда это случилось? Какая линия?   -  person Arran    schedule 18.06.2013
comment
Arran код, который я разместил, верен, и я получаю ту же ошибку, когда я заменил firefoxdriver на htmlunitdriver в приведенном выше коде. Хорошо, позвольте мне точно объяснить мою потребность - вывод, который я получил, выполняя приведенный выше код в netbeans, - это фабрика чизкейков фабрика чизкейков. меню, рецепт чизкейка, сыр, чизкейк, питание на фабрике чизкейка и т. д., ........, и я хочу, чтобы такой же вывод был получен с помощью HTMLUNIT DRIVER, ЗАМЕНЯЮЩЕГО ДРАЙВЕРОМ FIREFOX. Если вы можете, пожалуйста, опубликуйте тот же код с драйвером HtmlUnit, так как получается такой же вывод. ПОМОГИТЕ, PLZ, это очень важно для меня.   -  person user2341870    schedule 23.06.2013


Ответы (2)


В драйвере HtmlUnit он будет искать только тег и атрибут нижнего регистра.

Пример: HTML

тип ввода=имя текста=пример ›

INPUT type=text name=other ›

// код вебдрайвера

driver.findElements (By.xpath (// ввод));

для случая HtlmUNit: он найдет только один элемент (имя = пример)

для случая firefoxDriver = он найдет 2 элемента

надеюсь, это поможет вам в отладке кода

person Shammi    schedule 18.06.2013

Драйвер HtmlUnit ‹> FirefoxDriver

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

Посмотрите здесь

person e1che    schedule 18.06.2013
comment
e1che я пробовал с HtmlUnitDriver, включив javascript, но мне не удалось получить тот же результат, что и с драйвером firefox в вышеуказанной программе. Если вы можете опубликовать тот же код с драйвером HtmlUnit, так как получен такой же результат. PLZ HELP. - person user2341870; 23.06.2013