Селен только для тестирования?

Я только начинаю разрабатывать приложения для Android. Я написал некоторый код с журналами на веб-сайте (который использует тонны JavaScript) и получает некоторые данные, которые мне нужны. Я использовал для этого HtmlUnit. Теперь я вижу, что HtmlUnit не работает на Android, поэтому мне нужна альтернатива. Я сделал что-то вроде этого...

final WebClient webClient = new WebClient(BrowserVersion.EDGE);
    webClient.getOptions().setUseInsecureSSL(true);
    webClient.getOptions().setThrowExceptionOnScriptError(false);

    final HtmlPage loginSite = webClient.getPage("...");

    final HtmlForm login_form = (HtmlForm) loginSite.getElementById("login_form");

    final HtmlSubmitInput button = (HtmlSubmitInput) login_form.getByXPath("//input[@id='login_submit_button']").get(0);

    final HtmlTextInput id = login_form.getInputByName("user");
    id.setValueAttribute("...");

    final HtmlPasswordInput pw = login_form.getInputByName("password");
    pw.setValueAttribute("...");

    button.click();

    webClient.waitForBackgroundJavaScript(2000);

    HtmlPage worldSelectionForm = (HtmlPage) webClient.getTopLevelWindows().get(0).getEnclosedPage();

    final List<HtmlAnchor> anchorlist = worldSelectionForm.getAnchors();

    getWorld(anchorlist, 126).click();
    webClient.waitForBackgroundJavaScript(5000);

    HtmlPage game = (HtmlPage) webClient.getTopLevelWindows().get(0).getEnclosedPage();
    System.out.print(game.asXml());


 public static HtmlAnchor getWorld(List<HtmlAnchor> anchorlist, int world) {
        HtmlAnchor anchor = null;
        for (HtmlAnchor a : anchorlist) {
            if (a.toString().contains("server_de" + String.valueOf(world))) {
                anchor = a;
            }
        }
        return anchor;
    }

Я много искал, но не нашел ответа на свой вопрос.

Могу ли я сделать это тоже с Selenium? Селен только для тестирования?

Привет


person Muco    schedule 27.02.2016    source источник


Ответы (2)


На вопрос «Selenium предназначен только для тестирования?» сайт Selenium начинается с :

Selenium автоматизирует браузеры. Вот и все! Что вы будете делать с этой силой, зависит только от вас. В первую очередь он предназначен для автоматизации веб-приложений в целях тестирования, но, конечно, этим не ограничивается. Скучные задачи веб-администрирования также можно (и нужно!) автоматизировать.

Ознакомьтесь с Selendroid, который заменяет Драйвер Android.

У них есть несколько хороших примеров на странице Быстрый старт.

person aneroid    schedule 27.02.2016

Важнейшее решение при использовании Selenium (WebDriver) заключается не в том, «тестируете» вы или нет, а в том, нужна ли вам интерактивность: нужно ли вам моделировать человека с помощью настоящий браузер.

Если вам нужна интерактивность, вам подойдет одна из множества реализаций WebDriver (например, Selendroid).

Однако, если вы этого не сделаете, если вам просто нужно получить контент с веб-сайта, просто используйте библиотеку HTTP. Это будет быстрее, надежнее и позволит избежать проблем, связанных с браузером или устройством. Они могут обрабатывать файлы cookie, выполнять входы в систему и использовать всю мощь HTTP, но без веса браузера у них есть большое преимущество перед интерактивными инструментами.

Например, вы можете эффективно очищать и анализировать содержимое, используя JSoup (пример для Android).

person Andrew Regan    schedule 28.02.2016