超级无敌寂寞 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 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线