Java 硒只用于测试?

Java 硒只用于测试?,java,android,selenium,selenium-webdriver,htmlunit,Java,Android,Selenium,Selenium Webdriver,Htmlunit,我刚刚开始为android开发应用程序。我写了一些代码,登录到一个网站(使用大量JavaScript)并获取一些我需要的数据。我用过它。现在我明白了,HtmlUnit在android上不起作用,所以我需要一个替代方案。我做了这样的事 final WebClient webClient = new WebClient(BrowserVersion.EDGE); webClient.getOptions().setUseInsecureSSL(true); webClient.get

我刚刚开始为android开发应用程序。我写了一些代码,登录到一个网站(使用大量JavaScript)并获取一些我需要的数据。我用过它。现在我明白了,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;
    }
final-WebClient-WebClient=新的WebClient(BrowserVersion.EDGE);
webClient.getOptions().SetUseSecureSSL(true);
webClient.getOptions().SetThroweExceptionOnScriptError(false);
最终HtmlPage loginSite=webClient.getPage(“…”);
最终HtmlForm登录表单=(HtmlForm)loginSite.getElementById(“登录表单”);
最终HtmlSubmitInput按钮=(HtmlSubmitInput)登录\u表单.getByXPath(“//输入[@id='login\u提交\u按钮]”)。获取(0);
最终HtmlTextInput id=login_form.getInputByName(“用户”);
id.setValueAttribute(“…”);
最终HtmlPasswordInput pw=登录\表单.getInputByName(“密码”);
pw.setValueAttribute(“…”);
按钮。单击();
webClient.waitForBackgroundJavaScript(2000年);
HtmlPage worldSelectionForm=(HtmlPage)webClient.GetTopLevel Windows().get(0.getEnclosedPage();
最终列表主播列表=worldSelectionForm.getAnchors();
getWorld(主播列表,126)。单击();
webClient.waitForBackgroundJavaScript(5000);
HtmlPage game=(HtmlPage)webClient.GetTopLevel Windows().get(0.getEnclosedPage();
System.out.print(game.asXml());
公共静态HtmlAnchor GETWORD(列表主播,int world){
HtmlAnchor anchor=null;
(主持人a:主持人){
if(a.toString().contains(“server_de”+String.valueOf(world))){
锚=a;
}
}
回锚;
}
我找了很多,但没有找到我问题的答案

硒也可以吗?硒只用于测试吗

问候

对于问题“硒仅用于测试吗?”,以以下开头:

Selenium自动化浏览器。就这样!你用这种力量做什么完全取决于你自己。它主要用于自动化web应用程序以进行测试,但肯定不仅仅限于此。枯燥的基于web的管理任务也可以(而且应该!)自动化

签出,它将替换


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

使用Selenium(WebDriver)的关键决定不是你是否在“测试”,而是你是否需要互动性:你是否需要使用真实的浏览器模拟人

如果您需要交互性,那么众多WebDriver实现(例如)中的一个将是您所需要的

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

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