#javascript #python #selenium #selenium-chromedriver #recaptcha
Вопрос:
Я использовал этот код для отправки капчи на веб-странице с использованием selenium.
driver.execute_script('$.ajax({ type: "get", url: "' str(driver.current_url).split('.com')[1] '?g-recaptcha-response=' g_response '"}).done((html) => $("body").html(html) );')
Это правильная и единственная функция для отправки капчи, которую я нашел на веб-странице. И раньше это работало просто отлично. но пару дней назад он начал выдавать эту ошибку.
selenium.common.exceptions.JavascriptException: Message: javascript error: $ is not defined
Я попытался заменить » $ » на «документ» и «Jquery» .. и т. Д., Но это не сработало. У кого-нибудь есть идеи, как исправить эту ошибку? или другой способ отправить капчу? Я также оставлю javascript, который я нашел на странице, если это поможет.
var pickValidationRecaptcha;
function pickValidateRecaptchaCallback() {
pickValidationRecaptcha = grecaptcha.render('pickValidationRecaptcha', {
'sitekey': recaptchaKey,
'callback': function (resp) {
$.ajax({
type: "get",
url: "/pick/c6c23d46985a97ae5fbdc7c13ad2aa60?g-recaptcha-response=" resp
}).done(function (html) {
$("body").html(html);
});
},
'expired-callback': function () {
try {
grecaptcha.reset(reportRecaptcha);
}
catch (e) {
}
}
});
}
$(document).ready(function () {
setTimeout(function () {
if ($("#pickValidationRecaptcha").length > 0) {
pickValidateRecaptchaCallback();
}
}, 1000);
});
$(document).ajaxComplete(function () {
setTimeout(function () {
if ($("#pickValidationRecaptcha").length > 0) {
pickValidateRecaptchaCallback();
}
}, 1000);
});
Я использую первую функцию, и она работала нормально. Он все еще работает, когда я запускаю его на консоли параметров разработчика.
Любая помощь будет признательна.
Спасибо.