网址 - https://www.vtiger.com/begin-free-trial
输入无效的电子邮件地址,例如“abcde”,然后单击下一步按钮。您会注意到一条错误消息,该消息将显示 4/5 秒(下图)
我们如何验证此错误消息,我也无法获取此错误消息。
网址 - https://www.vtiger.com/begin-free-trial
输入无效的电子邮件地址,例如“abcde”,然后单击下一步按钮。您会注意到一条错误消息,该消息将显示 4/5 秒(下图)
我们如何验证此错误消息,我也无法获取此错误消息。
试试下面的代码 -
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
action = ActionChains(driver)
driver.get('https://www.vtiger.com/begin-free-trial/')
driver.find_element_by_name('email').send_keys("xyz")
driver.find_element_by_xpath('//button[contains(text(),"Next")]').click()
messagetoVerify = "Please include an '@' in the email address. 'xyz' is missing an '@'."
myValidationmsg = driver.find_element(By.NAME, 'email').get_attribute("validationMessage")
if myValidationmsg == messagetoVerify:
print("Verified Validation Message")
输出 -
Please include an '@' in the email address. 'xyz' is missing an '@'.
注意 - 如果它解决了您的问题,请标记为答案。
您所指的错误消息是验证消息,它是约束 APIelement.setCustomValidity()
方法的结果。
注意:HTML5 约束验证不会消除服务器端验证的需要。尽管预期的无效表单请求要少得多,但不兼容的浏览器(例如,没有 HTML5 和 JavaScript 的浏览器)或试图欺骗您的 Web 应用程序的坏人仍然可以发送无效的表单请求。因此,与 HTML4 一样,您还需要验证服务器端的输入约束,其方式与客户端所做的一致。
要检索错误消息,请填写此字段。你需要:
诱导WebDriverWait使所需元素成为可点击的。
现在,要提取validationMessage,您可以使用以下任一定位器策略:
使用CSS_SELECTOR
:
代码块:
driver.get("https://www.vtiger.com/begin-free-trial/")
work_email = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='email']")))
work_email.send_keys("dggf")
print(work_email.get_attribute("validationMessage"))
控制台输出:
Please include an '@' in the email address. 'dggf' is missing an '@'.
使用XPATH
:
代码块:
driver.get("https://www.vtiger.com/begin-free-trial/")
work_email = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='email']")))
work_email.send_keys("dggf")
print(work_email.get_attribute("validationMessage"))
控制台输出:
Please include an '@' in the email address. 'dggf' is missing an '@'.
您可以在以下位置找到详细的相关讨论: