gpt4 book ai didi

java - 适用于 Java( headless (headless)浏览器)的 HtmlUnit API 中的问题?

转载 作者:行者123 更新时间:2023-12-04 06:59:19 24 4
gpt4 key购买 nike

我正在使用 HtmlUnit headless (headless)浏览器浏览此 webpage (您可以查看网页以更好地了解问题)。

我已将选择的值设置为“1”



通过以下命令

final WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_7);
try {
// Configuring the webClient
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setCssEnabled(true);
webClient.setUseInsecureSSL(true);
webClient.setRedirectEnabled(true);
webClient.setActiveXNative(true);
webClient.setAppletEnabled(true);
webClient.setPrintContentOnFailingStatusCode(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());

// Adding listeners
webClient.addWebWindowListener(new com.gargoylesoftware.htmlunit.WebWindowListener() {

public void webWindowOpened(WebWindowEvent event) {
numberOfWebWindowOpened++;
System.out.println("Number of opened WebWindow: " + numberOfWebWindowOpened);
}

public void webWindowContentChanged(WebWindowEvent event) {
}

public void webWindowClosed(WebWindowEvent event) {
numberOfWebWindowClosed++;
System.out.println("Number of closed WebWindow: " + numberOfWebWindowClosed);
}
});

webClient.setWebConnection(new HttpWebConnection(webClient) {
public WebResponse getResponse(WebRequestSettings settings) throws IOException {
System.out.println(settings.getUrl());
return super.getResponse(settings);
}
});

CookieManager cm = new CookieManager();
webClient.setCookieManager(cm);


HtmlPage page = webClient.getPage("http://www.ticketmaster.com/event/0B004354D90759FD?artistid=1073053&majorcatid=10002&minorcatid=207");

HtmlSelect select = (HtmlSelect) page.getElementById("quantity_select");
select.setSelectedAttribute("1", true);

然后点击下面的按钮



通过以下命令
HtmlButtonInput button = (HtmlButtonInput) page.getElementById("find_tickets_button");
HtmlPage captchaPage = button.click();
Thread.sleep(60*1000);
System.out.println("======captcha page=======");
System.out.println(captchaPage.asXml());

但即使在单击按钮并通过 Thread.sleep() 方法等待 60 秒后,我也得到相同的 HtmlPage。

但是当我通过真实浏览器做同样的事情时,我得到了包含 CAPTCHA 的页面。

我想我在 htmlunit 中遗漏了一些东西。

一季度。为什么我没有通过 htmlunit 的浏览器获得相同的页面(包含 CAPTCHA)?

最佳答案

该页面上的网络表单需要填写quantity_select 下拉列表。您试图通过假设下拉列表是一个选择元素来在代码中执行此操作。然而,它不再是一个选择元素。尝试使用 Firebug 检查下拉列表,您会看到 JavaScript 已将选择替换为一组复杂的嵌套 div 元素。

如果您弄清楚如何模拟每个用户单击该不寻常下拉列表的 div,那么您应该能够提交表单。

关于java - 适用于 Java( headless (headless)浏览器)的 HtmlUnit API 中的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com