如何在selenium

时间:2015-07-02 09:34:04

标签: selenium selenium-webdriver

我有一个文本框来检查它是否不接受某些特殊字符。它不应该接受大约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="[^\%\/\\\&amp;\?\,\'\;\:\!\-]*" style="color:Red;visibility:hidden;"> * </span>

感谢。

2 个答案:

答案 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

希望这可以帮助你...如果你有任何疑问,请回来