WatiN bietet so einige Möglichkeiten zum Testen von Webseiten. Bald stellt man aber fest dass nur wenige input-Felder out-of-the-box zur Verfügung stehen. Glücklicherweise ist es aber sehr einfach, dies zu erweitern. Im konkreten Fall ging es um ein input-Feld vom Typ date.
In Anlehnung an eine Antwort auf stackoverflow hab ich mir dann folgende Klasse gebastelt:
[ElementTag("input", InputType = "date")]
public class DateTextField : TextField
{
public DateTextField(DomContainer domContainer, INativeElement element)
: base(domContainer, element)
{
}
public DateTextField(DomContainer domContainer, ElementFinder finder)
: base(domContainer, finder)
{
}
public static void Register()
{
Type typeToRegister = typeof(DateTextField);
ElementFactory.RegisterElementType(typeToRegister);
}
}
Unser neues DateTextField kann danach (nach registrierung über die statische Register()-Methode) mit dem Browserobjekt verwendet werden.
DateTextField.Register();
browser.ElementOfType<DateTextField>("date");
Auch die Verwendung in einer Page ist möglich - hier bietet es sich an, die Registrierung im Konstruktor zu erledigen.
public class DateInputPage : Page
{
public DateInputPage()
{
DateTextField.Register();
}
[FindBy(Id = "date")]
public DateTextField DateField;
}