Tôi có một chương trình được viết để cạo mã nguồn từ một trang web sau khi một nút được nhấp. Tôi không thể loại bỏ đúng trang vì tôi tin rằng yêu cầu AJAX đang được gửi và tôi không chờ phản hồi này diễn ra. Mã của tôi hiện nay là:Xử lý yêu cầu AJAX trong Htmlunit
public class Htmlunitscraper {
private static String s = "http://cpdocket.cp.cuyahogacounty.us/SheriffSearch/results.aspx?q=searchType%3dSaleDate%26searchString%3d10%2f21%2f2013%26foreclosureType%3d%27NONT%27%2c+%27PAR%27%2c+%27COMM%27%2c+%27TXLN%27";
public static String scrapeWebsite() throws IOException {
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage(s);
final HtmlForm form = page.getForms().get(2);
final HtmlSubmitInput button = form.getInputByValue(">");
final HtmlPage page2 = button.click();
String originalHtml = page2.refresh().getWebResponse().getContentAsString();
return originalHtml;
}
}
Sau khi đề cập đến link này, tôi tin rằng để sửa lỗi này tôi có thể thực hiện phương pháp "webClient.waitForBackgroundJavaScript (10000)". Vấn đề duy nhất là tôi không hiểu làm thế nào để làm điều này bởi vì mỗi lần tôi nhấp vào nút Tôi tạo ra một đối tượng HtmlPage, không phải là một đối tượng WebClient. Làm cách nào tôi có thể kết hợp phương pháp này để khắc phục sự cố?