所有!
出于任何原因,我在使用HTMLUnit时无法访问reCaptcha对话框。关于无法点击复选框有一个老问题,我已经解决了这个问题。但是,在我点击它之后,我收到一条警告,指出“无法联系reCAPTCHA。请检查您的连接,然后重试。”并且对话框无法正确加载。我无法想象阻止连接的原因。
以下是我的代码中用于运行javascript的部分:
HtmlPage page = client.getPage("https://my_website.xyz/login");
HtmlPage innerCaptchaPage = (HtmlPage) page.getFrames().get(0).getEnclosedPage();
HtmlElement checkbox = innerCaptchaPage.getBody().getElementsByAttribute("div", "class", "recaptcha-checkbox-checkmark").get(0);
HtmlPage clickPage = checkbox.click();
JavaScriptJobManager
mainManager = page.getEnclosingWindow().getJobManager(),
subManager = clickPage.getEnclosingWindow().getJobManager()
;
int count;
do {
int mainCount, subCount;
mainCount = mainManager.getJobCount();
subCount = subManager.getJobCount();
count = mainCount + subCount;
System.out.printf("Awaiting %d javascript job(s)... (%d / %d)\n", count, mainCount, subCount);
mainManager.waitForJobs(5_000);
subManager.waitForJobs(5_000);
} while (count > 0);
谢谢!