我正在尝试检查文本字段是否为空,我无法将bool转换为字符串。 我正在尝试这个:
var firstName = driver.FindElement(By.Id("name_3_firstname"));
if (firstName.Equals(" ")) {
Console.WriteLine("This field can not be empty");
}
另外,如何检查某个数字字段是否正好是20位? 你能帮帮我吗?
提前谢谢!
答案 0 :(得分:2)
如果是字符串,那么您可以使用string.Empty
或""
,因为" "
包含空格,因此它不是空的。
对于这20个数字,您可以使用一些变通方法field.ToString().Length == 20
,或者您可以重复将其除以10,直到结果值为0,但我会说解决方法可能更容易使用。< / p>
这更像是一般的C#答案。我不确定它在Selenium中的效果如何,但是我已经检查过了,并且string.Empty和ToString()似乎存在。
答案 1 :(得分:2)
对于Empty / White space / Null,请使用string
类
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.Text
或firstName.getAttribute("value");
之类的内容。如果你有这个,你就可以检查
:
var text = firstName.getAttribute("value");
if(string.IsNullOrEmpty(text)){ // do something }
if(text.length == 20) {// do something}