我正在编写一个 selenium 自动化机器人,我想将密钥发送到我从 iFrame 获得的输入,检查代码行:
username = bot.find_element_by_xpath("//iframe[@title='Registration form' and @class='top']")
你们能帮帮我吗?我可以单击输入,但是,在发送键时,它不起作用并取消选择输入字段。
我正在编写一个 selenium 自动化机器人,我想将密钥发送到我从 iFrame 获得的输入,检查代码行:
username = bot.find_element_by_xpath("//iframe[@title='Registration form' and @class='top']")
你们能帮帮我吗?我可以单击输入,但是,在发送键时,它不起作用并取消选择输入字段。
您不会将字符序列发送到元素<iframe>
,而是将字符序列发送到. 由于所需的元素在 a 内,因此您必须:<input>
<iframe>
<iframe>
为所需的frameToBeAvailableAndSwitchToIt诱导WebDriverWait。
为所需的elementToBeClickable诱导WebDriverWait。
您可以使用以下任一定位器策略:
使用XPATH
:
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@title='Registration form' and @class='top']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@attribure_name='attribute_value']"))).send_keys("Igor Duca")
使用CSS_SELECTOR
:
driver.get('https://www.t-online.de/themen/e-mail')
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.top[title='Registration form']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[attribure_name='attribute_value']"))).send_keys("Igor Duca")
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您可以在如何从 Python Selenium 中的类中提取所有 href中找到相关的详细讨论?
您可以在以下位置找到一些相关的讨论: