【问题标题】:CSS selector for reCAPTCHA checkbok using Selenium and VBA Excel使用 Selenium 和 VBA Excel 的 reCAPTCHA 复选框的 CSS 选择器
【发布时间】:2019-11-26 04:58:27
【问题描述】:

在我尝试填写某些字段的网站上,我需要单击一个复选框以在其中添加复选标记:

<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 中使用 Selenium,我尝试了以下方法

.FindElementByCss("div.recaptcha-checkbox-border").Click

我也试过了

.FindElementByCss("span.recaptcha-checkbox").Click

但我在这一行遇到了错误。

这是查看整个 HTML 的网站链接 https://www.moj.gov.kw/AR/E-Gov/Pages/eServices01.aspx

【问题讨论】:

  • 如果你可以使用 selenium 绕过 我不是机器人,那将不是很有用。
  • 这是我本周看到的第二篇帖子,其中有人试图完全做网站不希望他们做的事情。这可能是可行的,但您尝试做的事情很可能是非法的。我强烈反对它
  • @Zac 非常感谢。我已经编辑了主帖并删除了所有非法请求。

标签: excel vba selenium iframe webdriverwait


【解决方案1】:

到元素上的click(),因为所需的元素在<iframe> 内,所以你必须:

  • 诱导一个服务员并切换到所需的帧。
  • 诱导一个服务员让所需的元素可点击
  • 您可以使用以下解决方案:

    .SwitchToFrame.FindElementByXPath("//iframe[contains(@src, 'recaptcha') and not(@title='recaptcha challenge')]", timeout:=10000)
    .FindElementByCss("div.recaptcha-checkbox-checkmark").Click
    

您可以在以下位置找到类似的讨论:

在这里你可以找到Ways to deal with #document under iframe的相关讨论

【讨论】:

  • 非常感谢您的大力帮助。非常感谢您的帮助。
  • @DebianjanB 我遇到了另一个类似的页面,我使用 Ctrl + F 找到 Xpath div.recaptcha-checkbox-checkmark 并找到三个而不是一个。如何指定其中的第一个?
  • @YasserKhalil 让我们在Selenium room 详细讨论这个问题。
猜你喜欢
  • 2018-04-13
  • 2014-02-08
  • 2013-10-05
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 2016-11-01
相关资源
最近更新 更多