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
    

Вы можете найти подобные обсуждения в:

Здесь вы можете найти соответствующую дискуссию о способах работы с #document в iframe

Другие вопросы по тегам