Как исправить HTMLunit, не производящий веб-очистку? - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время при использовании инструмента веб-поиска htmlunit я собираюсь производить модульные тесты с помощью захвата Java и доступа к небольшому строящемуся веб-сайту.Код можно найти здесь для веб-сайта !

Я также размещу используемый код Java, в настоящее время я понимаю, что время нужно ждать, и я могу отключить сообщения об ошибках, которыевсплывающее окно для:

Фев.11, 2019 22:50:10 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error ПРЕДУПРЕЖДЕНИЕ: ошибка CSS: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6:10] Ошибка в правиле стиля.(Недопустимый токен "-". Ожидалось одно из:,,, "}", ";", "*".) 11 февраля 2019 г. 22:50:10 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning ПРЕДУПРЕЖДЕНИЕ: CSSпредупреждение: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6:10] Игнорирование следующих объявлений в этом правиле.11 февраля 2019 22:50:11 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error ПРЕДУПРЕЖДЕНИЕ: ошибка CSS: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6: 22403] Ошибка в выражении.(Недопустимый токен "". Ожидал одного из:, "наследовать",,,,,,,,,,,,,,,,,,,,,,,,,,,, progid:..) 11 февраля, 2019 22:50:11 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error ПРЕДУПРЕЖДЕНИЕ: ошибка CSS: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6: 23772] Ошибка в выражении.(Недопустимый токен "". Ожидал одного из:, "наследовать",,,,,,,,,,,,,,,,,,,,,,,,,,,, progid:..) 11 февраля, 2019 22:50:11 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error ПРЕДУПРЕЖДЕНИЕ: ошибка CSS: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6: 24174] Ошибка в выражении.(Неверный токен "". Ожидалось одно из:, "наследовать",,,,,,,,,,,,,,,,,,,,,,,,,,, "progid:".) ПРЕДУПРЕЖДЕНИЕ: CSSошибка: 'https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css' [6: 101786] Ошибка в выражении.(Недопустимый токен "". Ожидал одного из:, "наследовать",,,,,,,,,,,,,,,,,,,,,,,,,,,, progid:..) 11 февраля, 2019 22:50:11 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ПРЕДУПРЕЖДЕНИЕ. Обнаружен устаревший тип содержимого: 'text / javascript'.

Проблема заключается в том, что текст не создается после того, как это произошло, иЯ понятия не имею, почему или как это исправить, и я не могу найти его в Интернете.Используя htmlUnit 2.31, веб-сайт, который я использую, использует React, HTML, загрузочный CSS, и вот мой java-код, закомментированный в нескольких строках, но он все равно никогда не получает никакого текста.

Моя цель - иметь возможностьзагрузить мой веб-сайт и очистить HTML, CSS и JavaScript, созданные в конечном файле, и иметь возможность просматривать его в файле.Это работает правильно для других сайтов, и я могу получить сообщения об ошибках

Я пробовал разные вопросы на StackOverflow, пробовал сайт htmlunit, их документацию, а также комментировал строки, которые показывают ошибки, но ни одногоэто фактически решает проблему того, почему текст вообще не отображается.В настоящее время работает Windows 7 64bit с NodeJS для загрузки моего реагирования на порт 3000.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.FileOutputStream;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.BrowserVersion;

public class Scraper
{
    private String outputLocation, websiteLocation;
    private File output;

    public Scraper()
    {
        outputLocation = "C:/Users/MonPC/Desktop/School/SOEN/SOEN 341 Software Process'/Project/cssd/testing/Result.html";
        websiteLocation = "http://localhost:3000/";
        output = new File(outputLocation);
    }

    public Scraper(String websiteLocation, String outputLocation)
    {
        this.outputLocation = outputLocation;
        this.websiteLocation = websiteLocation;
        output = new File(outputLocation);
    }

    public boolean scrap()
    {
        PrintWriter filewriter = null;
        boolean success = false;
        WebClient client = new WebClient(BrowserVersion.CHROME);

        try
        {
            filewriter = new PrintWriter(new FileOutputStream(output));
            // turn off htmlunit warnings
                //java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF);
              //java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);

            //client.getOptions().setJavaScriptEnabled(true);
            //client.getOptions().setCssEnabled(true);
            //client.getOptions().setUseInsecureSSL(true);
            //client.waitForBackgroundJavaScript(100 * 1000);
            HtmlPage page = client.getPage(websiteLocation);
            filewriter.println(page.asXml());
            System.out.println(page.asXml());
            success = true;
        }
        catch (FileNotFoundException fnf)
        {
            System.out.println("File was moved or deleted during the write process");
        }
        catch (IOException ioe)
        {
            System.out.println("Couldn't connect to the website or had issues opening up default browser");
            ioe.printStackTrace();
        }
        finally
        {
            if (filewriter != null)
                filewriter.close();
            return success;
        }
    }

    public String getOutputLocation()
    {
        return outputLocation;
    }

    public String getWebsiteLocation()
    {
        return websiteLocation;
    }

    public File getOutput()
    {
        return output;
    }
}
...