验证空字段Selenium C#

时间:2017-04-02 09:50:51

标签: c# selenium

我正在尝试检查文本字段是否为空,我无法将bool转换为字符串。 我正在尝试这个:

var firstName = driver.FindElement(By.Id("name_3_firstname"));
if (firstName.Equals(" ")) {
                Console.WriteLine("This field can not be empty");
            }

另外,如何检查某个数字字段是否正好是20位? 你能帮帮我吗?

提前谢谢!

3 个答案:

答案 0 :(得分:2)

如果是字符串,那么您可以使用string.Empty"",因为" "包含空格,因此它不是空的。

对于这20个数字,您可以使用一些变通方法field.ToString().Length == 20,或者您可以重复将其除以10,直到结果值为0,但我会说解决方法可能更容易使用。< / p>

这更像是一般的C#答案。我不确定它在Selenium中的效果如何,但是我已经检查过了,并且string.Empty和ToString()似乎存在。

答案 1 :(得分:2)

对于Empty / White space / Null,请使用string

的以下API

string.IsNullOrEmpty(value)string.IsNullOrWhiteSpace(value)

对于精确的20位数,最好使用正则表达式,如下所示,如果需要,也可以将其转换为范围以及数字和字符的组合。当前正则表达式确保开头,结尾和所有组件都是数字

string pattern = @"^\d{20}$";
var booleanResult  = Regex.Match(value,pattern).Success

答案 2 :(得分:1)

我不确定这种方式会对你的情况有效。代码:

var firstName = driver.FindElement(By.Id("name_3_firstname"));

将返回You IWebElement对象。首先,您应该尝试获取此元素的文本。尝试firstName.TextfirstName.getAttribute("value");之类的内容。如果你有这个,你就可以检查 :

var text = firstName.getAttribute("value");
if(string.IsNullOrEmpty(text)){ // do something }
if(text.length == 20) {// do something}