如何通过Selenium和Python验证元素是否存在并调用send_keys方法
这是我的HTML代码。当我单击一个按钮时,页面会显示一个带有以下代码的div:如何通过Selenium和Python验证元素是否存在并调用send_keys方法,python,selenium,selenium-webdriver,webdriver,webdriverwait,Python,Selenium,Selenium Webdriver,Webdriver,Webdriverwait,这是我的HTML代码。当我单击一个按钮时,页面会显示一个带有以下代码的div: “添加电子邮件地址” 您可以使用以下代码: from selenium.webdriver.support import ui from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By buttons = driver.find_elements_by_
“添加电子邮件地址”
您可以使用以下代码:
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
buttons = driver.find_elements_by_css_selector(".button-secondary-medium")
for button in buttons:
button.click()
try:
email = ui.WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "email")))
email.send_keys("paul@yahoo.com")
except:
print("There is no input element.")
我在这里使用了显式等待和10秒等待,等待元素可点击且难以处理。try/except
块用于检查输入是否存在
另外,我不理解find\u element.*
的复数版本的用法,因为您的HTML代码中只有一个input
元素
希望它能帮助你 您可以使用以下代码:
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
buttons = driver.find_elements_by_css_selector(".button-secondary-medium")
for button in buttons:
button.click()
try:
email = ui.WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "email")))
email.send_keys("paul@yahoo.com")
except:
print("There is no input element.")
我在这里使用了显式等待和10秒等待,等待元素可点击且难以处理。try/except
块用于检查输入是否存在
另外,我不理解find\u element.*
的复数版本的用法,因为您的HTML代码中只有一个input
元素
希望它能帮助你 如果要检查输入标记并调用send_keys()
,则需要在中诱导WebDriverWait,尝试捕获{}
块,以使元素可单击()
,您可以使用以下解决方案:
- 代码块:
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//label[@for='email']"))).send_keys("Paul@Vio.com")
except TimeoutException:
print("Element doesn't exist")
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
如果要检查输入标记并调用send_keys()
您需要在中诱导WebDriverWait,尝试捕获{}
块,以便元素可点击()
,您可以使用以下解决方案:
- 代码块:
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//label[@for='email']"))).send_keys("Paul@Vio.com")
except TimeoutException:
print("Element doesn't exist")
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
@PaulVio,我已经更新了我的答案。请再检查一遍。谢谢,为什么你不能打电话?我不明白你的意思。电子邮件。发送密钥(“”)不起作用。如果email.ifn email.main等
@palvio,发布你的完整代码(更新)。完成了,你明白了吗?当按钮[i]点击时,
显示div
和input
我想要发送电子邮件there@PaulVio,我已更新我的答案。请再检查一遍。谢谢,为什么你不能打电话?我不明白你的意思。电子邮件。发送密钥(“”)不起作用。如果email.ifn email.main等
@palvio,发布你的完整代码(更新)。完成了,你明白了吗?当按钮[i]点击时,
向我显示div
和input
我想在那里发送电子邮件