超级无敌寂寞 2019-08-01 14:40 采纳率: 0%
浏览 295

使用HtmlUnit 选中点击后弹出来的小窗空里的某一项

图片说明

自己写的代码实现不 :
public static void main(String[] args) throws Exception {

    String baseUrl = "https://www.amazon.com/Crayola-Crayons-Assorted-Toddler-16Count/dp/B07L6VQDSC/ref=br_asw_pdt-5?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=&pf_rd_r=AVBEXB73DT8S9TDFXAEJ&pf_rd_t=36701&pf_rd_p=35b30473-3e76-4fb0-bbe5-6c819fe05b28&pf_rd_i=desktop";

    WebClient webClient = new WebClient();
    webClient.addRequestHeader("user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36");
    webClient.getOptions().setUseInsecureSSL(true);
    webClient.getCookieManager().setCookiesEnabled(true);//开启cookie管理
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setCssEnabled(false);
    webClient.setJavaScriptTimeout(5000);
    //设置不自动重定向
 //    webClient.getOptions().setRedirectEnabled(false);
    //设置出现302重定向不会报错
    //      webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    webClient.getOptions().setDoNotTrackEnabled(false);
    //执行请求
    HtmlPage page = webClient.getPage(baseUrl);
    webClient.waitForBackgroundJavaScript(5*1000);

    DomNodeList<DomElement> input2 = page.getElementsByTagName("input");

// //获取指点标签
HtmlSubmitInput submitInput = null;
for (DomElement domElement : input2) {
if (domElement.getAttribute("title").equals("Add to Shopping Cart")) {
submitInput = (HtmlSubmitInput) domElement;
}
}
HtmlPage page1 = submitInput.click();

    //设置下拉框数量
    HtmlSelect quantity = page1.getElementByName("quantity");
    HtmlOption option = quantity.getOption(5);
    option.click();


    //下拉框下的商品数量(还是不能改变数量)

// DomNodeList span = page1.getElementsByTagName("span");
// HtmlElement htmlElement=null;
// for (DomElement domElement : span) {
// if (domElement.getAttribute("data-a-class").equals("quantity")) {
// htmlElement= (HtmlElement) domElement;
// }
// }
// if (htmlElement!=null) {
// HtmlPage page2 = htmlElement.click();
// }
DomNodeList span1 = page1.getElementsByTagName("span");
HtmlElement htmlElement1= null;
for (DomElement domElement : span1) {
if (domElement.getAttribute("class").equals("a-button-text a-declarative")) {
htmlElement1= (HtmlElement) domElement;

        }
    }
    if (htmlElement1!=null) {
        HtmlPage page2 = htmlElement1.click();
        String contentAsString = page2.getWebResponse().getContentAsString();
        System.out.println("打"+contentAsString);
    }



}

}

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-21 13:59
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器