Selenium 未通过 id 或文本检测按钮

问题描述 投票:0回答:1

我目前正在制作一个登录selenium并通过验证的程序。我已经考虑并准备好了程序的其余部分,但无论我做什么来单击验证按钮,无论是通过 ID 还是通过内部文本,该按钮都不会单击。我在控制台中运行了一些内容来检查有多少个元素具有该 id,结果显示只有 1 个。

这是不起作用的代码行,其他所有内容(例如登录)都工作得很好。

WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.ID, "home_children_button"))).click()

enter image description here

python html selenium-webdriver automation selenium-chromedriver
1个回答
0
投票

我也遇到过类似的情况,在我看来,这很可能是一个

iframe
问题。您可以尝试以下方法:

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# ... after open the page of verification..

# Wait for the iframe to be present and switch to it
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.TAG_NAME, "iframe")))

# Locate the button inside the iframe
verify_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Verify']")))

# Click the button
verify_button.click()

我还建议在尝试选择元素后调试 WebDriver 元素。这可以帮助确保您与所需的元素正确交互。

© www.soinside.com 2019 - 2024. All rights reserved.