-->

对于HTML5标签华廷支持(WatiN support for HTML5 tags)

2019-06-23 10:32发布

我有以下HTML:

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

我想从华廷键入文本到它:

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

但现场无法找到。 这是因为华廷不支持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);
    }
}

注册类型和运行它仍然无法正常工作的代码之后。 任何人都可以看到,为什么还是没有任何人有另一种解决方法这个问题?

Answer 1:

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

试图获得ID电子邮件的文本字段,从而无法为TextFieldExtended类型。

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

获取与ID电子邮件TextFieldExtended。



文章来源: WatiN support for HTML5 tags
标签: watin