Подтвердить что ты не робот

Поддержка WatiN для тегов HTML5

У меня есть следующий HTML:

<input type="email" id="email">

Я хочу набрать текст из него в WatiN:

var field = Browser.TextField("email");
Assert.IsTrue(field.Exists);

Но поле не может быть найдено. Это связано с тем, что WatiN еще не поддерживает теги HTML5. Я нашел решение, создав расширенный класс TextField:

[ElementTag("input", InputType = "text", Index = 0)]
[ElementTag("input", InputType = "password", Index = 1)]
[ElementTag("input", InputType = "textarea", Index = 2)]
[ElementTag("input", InputType = "hidden", Index = 3)]
[ElementTag("textarea", Index = 4)]
[ElementTag("input", InputType = "email", Index = 5)]
[ElementTag("input", InputType = "url", Index = 6)]
[ElementTag("input", InputType = "number", Index = 7)]
[ElementTag("input", InputType = "range", Index = 8)]
[ElementTag("input", InputType = "search", Index = 9)]
[ElementTag("input", InputType = "color", Index = 10)] 
public class TextFieldExtended : TextField
{
    public TextFieldExtended(DomContainer domContainer, INativeElement element)
        : base(domContainer, element)
    {
    }

    public TextFieldExtended(DomContainer domContainer, ElementFinder finder)
        : base(domContainer, finder)
    {
    }

    public static void Register()
    {
        Type typeToRegister = typeof (TextFieldExtended);
        ElementFactory.RegisterElementType(typeToRegister);
    }
}

После регистрации типа и запуска кода он все равно не работает. Может ли кто-нибудь понять, почему или у кого-то есть другой способ обхода проблемы?

4b9b3361

Ответ 1

var field = Browser.TextField("email");

Пытается получить TextField с идентификатором электронной почты и, таким образом, сбой для типа TextFieldExtended.

var field = Browser.ElementOfType<TextFieldExtended>("email");

Получает TextFieldExtended с идентификатором электронной почты.