WatiN 支持 HTML5 标签 [英] WatiN support for HTML5 tags
问题描述
我有以下 HTML:
<input type="email" id="email">
我想从 WatiN 中输入文本:
I want to type text into it from WatiN :
var field = Browser.TextField("email");
Assert.IsTrue(field.Exists);
但是找不到该字段.这是因为 WatiN 还不支持 HTML5 标签.我通过创建找到了一个解决方案扩展的 TextField 类:
But the field can't be found. This is because WatiN doesn't support HTML5 tags yet. I found a solution to this by creating an extended TextField-class:
[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);
}
}
注册类型并运行代码后,它仍然不起作用.任何人都可以明白为什么或者有人有其他解决方法来解决这个问题吗?
After registering the type and running the code it still doesn't work. Can anyone see why or does anyone have another workaround for this problem?
推荐答案
var field = Browser.TextField("email");
尝试获取带有电子邮件 ID 的 TextField,因此对于 TextFieldExtended 类型失败.
Tries to get the TextField with id email and thus fails for the TextFieldExtended type.
var field = Browser.ElementOfType<TextFieldExtended>("email");
获取带有电子邮件 ID 的 TextFieldExtended.
Gets the TextFieldExtended with id email.
这篇关于WatiN 支持 HTML5 标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!