【发布时间】:2016-06-11 01:59:00
【问题描述】:
我刚刚开始为 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 也可以这样做吗?硒仅用于测试吗?
问候
【问题讨论】:
标签: java android selenium selenium-webdriver htmlunit