所以我一直在尝试构建一个webscraper,但我需要抓取的一些数据被锁定在reCaptcha后面。根据我在互联网上搜索到的信息,每个captcha都有一个TextArea元素,其中包含"g-repatcha-response",该元素在captcha完成时填写。目前的测试解决方案是简单地绕过captcha,由我手动完成,并尝试捕获响应并将其反馈到无头浏览器中,但我无法获得响应,因为一旦提交了答案,它就再也找不到响应元素。
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"*[name='g-recaptcha-response']"}
public static String captchaSolver(String captchaUrl) {
setUp();
driver.get(captchaUrl);
new WebDriverWait(driver,2);
try {
while (true) {
String response = driver.findElement(By.name("g-recaptcha-response")).getText();
if (response.length()!=0) {
System.out.println(response);
break;
}
}
}catch (Exception e){
e.printStackTrace();
}
return "";
}
尝试通过CSS找到元素,如下所示:
*[name*='-recaptcha-response']