2017-04-02 4 views
0

Ich versuche zu überprüfen, ob ein Textfeld leer ist und ich kann Bool nicht in Zeichenfolge konvertieren. Ich versuche dies:Überprüfen leeres Feld Selen C#

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

Auch, wie kann ich überprüfen, ob bestimmte Nummernfeld 20 Stellen genau ist? Können Sie mir helfen, dies zu tun?

Vielen Dank im Voraus!

Antwort

2

Wenn es Zeichenfolge ist, können Sie oder "" verwenden, weil " " ein Leerzeichen enthält, daher ist es nicht leer.

Für diese 20 Ziffern können Sie ein wenig eine Problemumgehung verwenden field.ToString().Length == 20 oder Sie können es wiederholt durch 10 teilen, bis der resultierende Wert 0 ist, aber ich würde sagen, dass die Problemumgehung einfacher zu verwenden ist.

Dies ist eher eine allgemeine C# -Antwort. Ich bin mir nicht ganz sicher, wie gut es in Selenium funktionieren wird, aber ich habe überprüft und string.Empty und ToString() scheinen dort zu existieren.

2

Für Leer/Weiß Raum/Null, Verwendung folgende APIs der string Klasse

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

Für genaue 20 Stellen, am besten ist es, die regulären Ausdrücke wie folgt zu verwenden, kann dies auch sein Bei Bedarf in einen Bereich und eine Kombination von Ziffern und Zeichen konvertiert. Aktuelle regulärer Ausdruck stellt sicher, dass zu Beginn, Ende und alle Komponenten sind Ziffern

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

Ich bin nicht sicher, dass diese Art und Weise in Ihrem Fall funktioniert. Code:

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

wird zu Ihnen zurück IWebElement Objekt. Zuerst sollten Sie versuchen, den Text dieses Elements zu erhalten. Versuchen Sie etwas wie firstName.Text oder firstName.getAttribute("value");. Wenn Sie dies haben, können Sie überprüfen :

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