【问题标题】:HtmlUnit Click Href "Image"HtmlUnit 点击 Href “图片”
【发布时间】:2017-08-19 02:54:38
【问题描述】:

任何想法如何用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);
    */

更新:遇到新问题:

在访问之前检查您的浏览器..

试着弄清楚这个;)

【问题讨论】:

    标签: java html xpath href htmlunit


    【解决方案1】:

    不确定您是否在谈论此问题,但如果您想更改光标以向某人显示您可以单击图像:

    .champbox {
      cursor:pointer;
    }
    

    【讨论】:

    • 不谈这个。正在寻找一种使用 HtmlUnit 来单击此“图像”的方法。像 image.click();但是谢谢;)
    【解决方案2】:

    您的案例适用于最新版本/快照。

    <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());
    }
    

    【讨论】:

    • 首先谢谢你,我尝试了两种方法,但仍然出现错误:为了更好的概述:Photo
    • 完成,抱歉,只是想保持简洁明了
    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 2023-03-21
    • 1970-01-01
    • 2018-03-22
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多