簡體   English   中英

HtmlUnit單擊Href“圖像”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM