如何编写Selenium代码验证必填字段后的星号存在
验证必填字段后的星号(*)的Selenium实现
下面分两种常见场景给出代码示例,你可以根据页面实际的HTML结构选择适配:
场景1:星号直接包含在字段标签文本中
如果必填字段的标签(比如<label>)文本是类似First Name*这样的格式,代码如下:
from selenium import webdriver from selenium.webdriver.common.by import By # 初始化浏览器实例 driver = webdriver.Chrome() driver.get("替换为你的目标页面URL") # 定义需要验证的必填字段名称(不带星号) required_field_names = ["First Name", "Last Name", "Enter Address", "Enter Phone Number"] for field_name in required_field_names: try: # 定位对应的标签元素,这里用XPATH文本包含定位,可根据页面结构换成ID/CSS选择器 label = driver.find_element(By.XPATH, f"//label[contains(text(), '{field_name}')]") full_label_text = label.text.strip() # 检查文本末尾是否存在星号 if full_label_text.endswith("*"): print(f"✅ {field_name} 字段后存在星号,验证通过") else: print(f"❌ {field_name} 字段后未找到星号,验证失败") except Exception as err: print(f"⚠️ 未找到 {field_name} 对应的字段元素: {str(err)}") # 关闭浏览器 driver.quit()
场景2:星号是独立的元素
如果星号是单独的HTML元素(比如<span class="required">*</span>),和字段文本同级,代码示例:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("替换为你的目标页面URL") required_field_names = ["First Name", "Last Name", "Enter Address", "Enter Phone Number"] for field_name in required_field_names: try: # 定位字段文本元素 field_text = driver.find_element(By.XPATH, f"//span[text()='{field_name}']") # 查找紧随其后的星号元素 asterisk = field_text.find_element(By.XPATH, "./following-sibling::*[text()='*']") if asterisk.is_displayed(): print(f"✅ {field_name} 字段后存在星号,验证通过") except Exception as err: print(f"❌ {field_name} 字段后未找到星号或元素不存在: {str(err)}") driver.quit()
注意事项
- 务必根据页面实际的HTML结构调整元素定位方式(比如用
By.ID、By.CSS_SELECTOR更稳定) - 如果必填提示是在输入框的
placeholder中,需要定位输入框元素,通过get_attribute("placeholder")获取值后检查是否包含星号 - 若要集成到自动化测试框架(如pytest),可以将验证结果收集后用断言抛出异常,而非打印信息
内容的提问来源于stack exchange,提问作者Ajay D
相关产品推荐
相关产品推荐

