jQuery / regex失败的selenium IDE测试

时间:2012-10-23 13:52:48

标签: jquery regex selenium selenium-ide

我有一些jQuery验证代码必须在Selenium上传递一些测试。但是,每次运行测试时,不同的测试都会失败,不同的测试会通过。例如,在一次测试中,密码短路将失败,密码太长将通过。但是,如果我重新运行测试,可能会发生相反的情况!

这是正则表达式:

var password = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*(_|[-+_!@#$%^&*.,?])).{6,20}$/;

这是jQuery:

if($('#password').val() ==""){
$('#passwordErrorMsg').text("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol.");  
}        
else if(password.test($('#password').val())){      
$('#passwordErrorMsg').text("OK");
}    
else($('#passwordErrorMsg').text("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol."));
});

通过Selenium测试的任何帮助都会有所帮助和感激,谢谢。

1 个答案:

答案 0 :(得分:0)

/^((?<lowerCase>[a-z])|(?<upperCase>[A-Z])|(?<numberOrSymbol>[0-9+_!@#$%^&*.,?-])){6,20}(?(lowerCase)|(?!))(?(upperCase)|(?!))(?(numberOrSymbol)|(?!))$/

从行首开始。

以小写字母,大写字母或NumberOrSymbol取6-20倍,同时计算每种类型的出现次数。

验证每种类型至少发生过一次。

验证我们是否在行尾。

关于问题中出现的正则表达式的注释:它验证了所需符号的存在,但它并不要求pwd中的所有字符都属于“声明”类之一,它会接受字符串“aA3” @ \\\“,作者可能并不打算成为可接受的密码。