CSS-селектор для reCaptcha checkbok с использованием Selenium и VBA Excel
На сайте я пытаюсь заполнить некоторые поля, есть флажок, который мне нужно нажать, чтобы добавить в него флажок
<div class="rc-anchor-content"><div class="rc-inline-block"><div class="rc-anchor-center-container"><div class="rc-anchor-center-item rc-anchor-checkbox-holder"><span class="recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox recaptcha-checkbox-expired" role="checkbox" aria-checked="false" id="recaptcha-anchor" dir="ltr" aria-labelledby="recaptcha-anchor-label" aria-disabled="false" tabindex="0"><div class="recaptcha-checkbox-border" role="presentation" style=""></div><div class="recaptcha-checkbox-borderAnimation" role="presentation" style=""></div><div class="recaptcha-checkbox-spinner" role="presentation" style="transform: rotate(180deg);"></div><div class="recaptcha-checkbox-spinnerAnimation" role="presentation" style=""></div><div class="recaptcha-checkbox-checkmark" role="presentation"></div></span></div></div></div><div class="rc-inline-block"><div class="rc-anchor-center-container"><label class="rc-anchor-center-item rc-anchor-checkbox-label" aria-hidden="true" role="presentation" id="recaptcha-anchor-label"><span aria-live="polite" aria-labelledby="recaptcha-accessible-status"></span>I'm not a robot</label></div></div></div>
Используя селен в VBA, я попробовал следующее
.FindElementByCss("div.recaptcha-checkbox-border").Click
а также я пытался
.FindElementByCss("span.recaptcha-checkbox").Click
Но я получил ошибку в этой строке
Вот ссылка на сайт, чтобы увидеть весь HTML- https://www.moj.gov.kw/AR/E-Gov/Pages/eServices01.aspx
1 ответ
Решение
К click()
на элементе, так как требуемый элемент находится в пределах <iframe>
так что вы должны:
- Заведите официанта и переключитесь на нужный кадр.
- Побудите официанта к желаемому элементу быть кликабельным.
Вы можете использовать следующее решение:
.SwitchToFrame.FindElementByXPath("//iframe[contains(@src, 'recaptcha') and not(@title='recaptcha challenge')]", timeout:=10000) .FindElementByCss("div.recaptcha-checkbox-checkmark").Click
Вы можете найти подобные обсуждения в:
- Как нажать на reCaptcha, используя Selenium и Java
- Найдите элемент reCAPTCHA и щелкните по нему - Python + Selenium
Здесь вы можете найти соответствующую дискуссию о способах работы с #document в iframe