如何使用 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()
我有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()