如何使用selenium python验证html5验证
我正在尝试验证,可以在这里看到,此链接不是我的,但我想验证此文本如何使用selenium python验证html5验证,python,selenium-webdriver,html5,Python,Selenium Webdriver,Html5,我正在尝试验证,可以在这里看到,此链接不是我的,但我想验证此文本请填写此字段。,或者其他更好的主意?如何验证 我所做的如下: msg = self.driver.find_element_by_id("username") print(msg.get_attribute("value")) time.sleep(10) assert msg.get_attribute("value") == "Please fill out this field." Print给出了以下输出>Print(ms
请填写此字段。
,或者其他更好的主意?如何验证
我所做的如下:
msg = self.driver.find_element_by_id("username")
print(msg.get_attribute("value"))
time.sleep(10)
assert msg.get_attribute("value") == "Please fill out this field."
Print给出了以下输出>Print(msg.get_属性(“value”))
和assert给出了AssertionError
,我已经通过了许多对我没有帮助的答案
HTML:
我尝试了打印(msg.get\u属性(“value”).values)若要查看其中的内容,并且它给出了以下错误
AttributeError:“unicode”对象没有属性“值”
若要验证验证消息是否存在,请填写此字段。您必须为位于()的元素的可见性诱导WebDriverWait
您可以使用以下任一选项:
- 使用
:CSS\u选择器
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input#username[name='username']"))).get_attribute("validationMessage"))
- 使用
:XPATH
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "input[@id='username' and @name='username']"))).get_attribute("validationMessage"))
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
validationMessage
属性以获取验证消息:
msg = self.driver.find_element_by_id("username")
validation_message = msg.getAttribute("validationMessage")
# or
# validation_message = self.driver.execute_script("return arguments[0].validity.valid;", msg)
assert validation_message == "Please fill out this field."
接下来的工作应该是有效的
username = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "username")))
assert username.get_attribute("validationMessage") == "Please fill out this field."
@DebanjanB这就是python解决方案,你知道python解决方案吗?@DebanjanB是的,我找到了解决方案,但它给出了以下错误username=WebDriverWait(self.driver,20)。直到(EC.element可点击((By.CSS_选择器,“input.cell.small-21.form text.required#edit name[name='username']))我有你的代码行,在我的情况下,字段名是用户名,所以我很抱歉,我不知道该怎么做
username = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "username")))
assert username.get_attribute("validationMessage") == "Please fill out this field."