我有一个文本框来检查它是否不接受某些特殊字符。它不应该接受大约10个特殊字符。输入错误的特殊字符时,RegularExpressionValidator会抛出红色星号*符号标记。当给出错误的字符时,我不知道如何捕获红色符号标记。请在下面找到示例代码。
String[] invalidChars = {"%", "/", "\\", "&", "?", ";", ":", "!"};
for (String invalid : invalidChars) {
driver.findElement(By.id("txtbox")).clear();
driver.findElement(By.id("txtbox")).sendKeys(invalid);
driver.findElement(By.id("btnSubmit")).click();
.......................
不知道如何捕获在给出错误的字符时出现的RegularExpressionValidator星号*符号。
Html代码
<input name="txtbox" type="text" maxlength="150" id="id" tabindex="3" class="Inputfield" style="width:100%;resize:none" />
<span controltovalidate="txtbox" id="ControlValidator" evaluationfunction="RegularExpressionValidatorEvaluateIsValid" validationexpression="[^\%\/\\\&\?\,\'\;\:\!\-]*" style="color:Red;visibility:hidden;"> * </span>
感谢。
答案 0 :(得分:0)
您需要检查css属性可见性的值。
选择验证器:
WebElement validator = driver.findElement(By.Id("validator"));
查明其隐藏或可见:
String asterisk = validator.getCssValue("visibility");
所以如果asterisk.equals('hidden')
那么输入是合法的,如果它是asterisk.equals('visible')
那么你就有了非法的字符。
答案 1 :(得分:0)
您也可以通过xpath(和运算符)轻松完成,例如,检查元素的id是否为验证器以及是否显示文本
driver.findElement(By.xpath("//span[@id='ControlValidator' and contains(text(), '*')]");
编辑:
// Chk if element is present or not
boolean b=driver.findElement(By.xpath("//span[@id='yourid' and contains(text(), '*')]").isDisplayed();
System.out.println(b);
//If it returns true then the respective element * appears on the screen
//There is no need to get the css value visibility
希望这可以帮助你...如果你有任何疑问,请回来