如何使用 python selenium 单击 Hcaptcha 复选框

How to click Hcaptcha checkbox with python selenium

我有hcaptcha复选框的HTML如下:

<div id="checkbox" aria-haspopup="true" aria-checked="false" role="checkbox" tabindex="0" aria-live="assertive" aria-labelledby="a11y-label" style="position: absolute; width: 28px; height: 28px; border-width: 1px; border-style: solid; border-color: rgb(145, 145, 145); border-radius: 4px; background-color: rgb(250, 250, 250); top: 0px; left: 0px;"></div>

我尝试了以下命令但没有成功:

check = driver.find_element_by_id("checkbox")
driver.execute_script("arguments[0].click();",check)

它 returns 有错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

像下面这样的一些命令也不起作用:

driver.find_element_by_xpath('//*[@id="checkbox"]').click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div/div[1]/div[1]/div"))).click()

这个link:https://gleam.io/gIxR1/cyball-x-ancient8-20-common-packs-cyblocs-1000-usdt-social-giveaways

如何解决这个问题?

可能是 iframe 中的验证码加载。所以首先你必须切换到 iframe 然后找到验证码

iframe = driver.find_element_by_xpath("IFRAME_XPATH_HERE")
driver.switch_to.frame(iframe)

现在您可以找到复选框

driver.find_element_by_xpath('//*[@id="checkbox"]').click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div/div[1]/div[1]/div"))).click()