硒仅用于测试?

时间:2016-02-27 21:29:24

标签: java android selenium selenium-webdriver htmlunit

我只是为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做这个吗?硒仅用于测试吗?

问候

2 个答案:

答案 0 :(得分:2)

对于问题&#34; 仅用于测试的硒?&#34;,Selenium site以:

开头
  

Selenium自动化浏览器。这就是它!你用这种力量做什么完全取决于你。它主要用于自动化Web应用程序以进行测试,但当然不仅限于此。无聊的基于Web的管理任务也可以(也应该!)也是自动化的。

结帐Selendroid,取代Android Driver

他们在Quick Start页面上有一些很好的例子。

答案 1 :(得分:0)

Selenium(WebDriver)的关键决定不是你是否测试&#34;,而是你是否需要交互性:你是否需要使用真实浏览器模拟人类。

如果您需要互动性,那么您需要的是许多WebDriver实施中的一个(例如Selendroid)。

但是,如果您不想,只需要从网站上获取内容,只需使用HTTP库即可。这将更快,更有弹性,并将避免浏览器或设备特定的问题。他们可以处理cookie,效果登录以及HTTP背后的所有功能,但是没有浏览器的重量,它们比交互式工具有很大的优势。

例如,您可以使用JSoup(Android示例)非常容易地抓取和解析内容。