[英]HtmlUnit Click Href “Image”
任何想法如何使用HtmlUnit
單擊此“圖像”?
<a href="play.php?choose=2">
<div id="champbox" style="background-image: url(http:xxx.jpg);float:right;"></div></a>
嘗試使用HtmlAnchor和Xpath單擊它,但出現如下錯誤:
java.lang.NullPointerException
要么
com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[a] attributeName=[href] attributeValue=[play.php?choose=2]
這里是重現該問題的所有部分:
側面: http : //guessleague.net/#
您不需要帳戶。
我的代碼:
//Webclient Options
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getCookieManager().setCookiesEnabled(false);
webClient.getOptions().setJavaScriptEnabled(true);
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
// Cut out the Login (better Overview)
HtmlAnchor anchor = page2.getAnchorByHref("play.php");
HtmlPage page3 = anchor.click();
System.out.println(page3.getTitleText());
System.out.println(page3.getUrl());
//To-Do: Click left or right Picture
/*
HtmlAnchor a1 = page3.getAnchorByHref("play.php?choose=2");
System.out.println(a1.asXml());
HtmlAnchor a2 = page3.getFirstByXPath("//a[@href='play.php?choose=2']");
System.out.println(a2.asXml());
a1.click();
a2.click();
*/
/*
ScriptResult result = page3.executeJavaScript("vapi-client.js:41");
result.getJavaScriptResult();
System.out.println("result: "+ result);
*/
更新:並得到一個新的問題:
在訪問之前檢查您的瀏覽器。
嘗試找出這個;)
不知道您是否在談論這個,但是如果您想更改光標以顯示可以單擊該圖像的人:
.champbox {
cursor:pointer;
}
您的案例適用於最新版本/快照。
<a href="play.php?choose=2">
<div id="champbox" style="background-image: url(http:xxx.jpg);float:right;"></div>
</a>
try (WebClient webClient = new WebClient()) {
HtmlPage page = webClient.getPage("http://localhost:8080");
HtmlAnchor a1 = page.getAnchorByHref("play.php?choose=2");
System.out.println(a1.asXml());
HtmlAnchor a2 = page.getFirstByXPath("//a[@href='play.php?choose=2']");
System.out.println(a2.asXml());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.