2017-04-02 114 views
0

我想检查一个文本字段是否为空,我不能将bool转换为字符串。 我想这一点:验证空字段硒C#

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

另外,我怎么可以检查一定数量的领域正好是20位? 你能帮我做这个吗?

预先感谢您!

回答

2

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

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

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

2

空/白空间/空,使用以下的string类的API

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

对于确切20个数字,最好是使用正则表达式如下,这也可以如果需要,转换为数字和字符的范围和组合。目前的正则表达式确保开始,结束和所有组件都是数字

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

我不确定这种方式适用于您的情况。代码:

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

会返回给您IWebElement对象。首先你应该尝试获取这个元素的文本。尝试类似firstName.TextfirstName.getAttribute("value");。当你有这个,你将能够检查 :

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